.


:




:

































 

 

 

 





multimap m, ( ). , / . :

#include "stdafx.h"

#include <iostream>

#include <map>

#include <string>

using namespace std;

 

int main()

{

/* ;

* - map: "/"

* - string: string

*- float: float

*/

typedef map<string, float> StringFloatMap;

StringFloatMap coll;

//

coll["VAT"]=0.15;

coll["Pi"] = 3.1415;

coll["an arbitrary number"] = 4983.223;

coll["Null"] = 0;

 

/*

* -

* - first

* - second */

StringFloatMap::iterator pos;

for (pos = coll.begin(); pos!= coll.end(); ++pos) cout << "key: = " << pos->first << "\t"<< "value: = "<<pos->second << endl;

}

( ):

typedef map<string, float> StringFloatMap;

[]:

coll ["VAT"] = 0.15;

coll["Pi"] = 3.1415;

coll["an arbitrary number"] = 4983.223;

ll['Null] = 0;

. . , ( ).

: , . , , . ( ) , . , . , ll [Null"] = 0 "Null". 0, float.

. , , , . , /. .

, , first second pair. :

key:= "Null value:= 0

key: Pi value:= 3.1415

key: "VAT value: 0.15

key: ="an arbitrary number" value: =4983.22

 

. , , . , STL , . , , , , , .

. .

- . , : ( ++) ( --). list, set, multiset, map multimap .

- . , . , ( ). , , < >. vector deque, .

, . , :

for (pos = coll.begin(); pos!= coll.end(); ++pos) { }

:

for (pos = coll.begin(); pos < coll.end(); ++pos) { }

- < != . < , , . , , != <. , , pos end(). , . , .

, , , . . STL, , , , .

 

STL , . , , , , , .

, . : , . , . , .

: - , . , - , , . , : -, . -, , , , (, ). , STL, . .

; STL :

#include "stdafx.h"

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

int main()

{

vector<int> coll;

vector<int>::iterator pos;

 

// 1 6

coll.push_back(2);

coll.push_back(5);

coll.push_back(4);

coll.push_back(1);

coll.push_back(6);

coll.push_back(3);

 

//

pos = min_element(coll.begin(), coll.end());

cout << "min: " << *pos << endl;

pos = max_element(coll.begin(), coll.end());

cout << "max: " << *pos << endl;

 

//

sort(coll.begin(),coll.end());

 

// , 3

pos = find(coll.begin(), coll.end(), //

3); //

 

// 3

// .

reverse(pos, coll.end());

 

//

for (pos = coll.begin(); pos!= coll.end(); ++pos) {

cout << *pos << ' ';

}

cout << endl;

}

, <algorithm>

min_element() max_element(). , . , begln() end(). . , min_element() ( , ):

pos = min_element(coll.begin(), coll.end());

:

cout << "min: " << *pos << endl;

, :

cout << *min_element(coll.begin(), coll.end(), end()) << endl;

sort(). , , . , . <. , :

sort (coll.begin(), coll.end());

:

1 2 3 4 5 6

find() . 3:

pos = find (colI.begin(), coll.nd (), //

3); //

, find() , . , . 3 , pos coll.

reverse(), . , find(), :

reverse (pos.coll.end());

. :

min: 1

max: 6

1 2 6 5 4 3

. ( ) . , ( , ).

, . , , . , , . , , . , . , STL .

. , , . :

[, )

[, ]

.

. . :

#include "stdafx.h"

#include <iostream>

#include <list>

#include <algorithm>

using namespace std;

 

int main()

{

list<int> coll;

list<int>::iterator pos;

 

// 20 40

for (int i = 20; i<40; ++i) {

coll.push_back(i);

}

// , 3

/*- , pos coll.end()

*/

pos = find(coll.begin(), coll.end(), // /

3); //

 

/* . pos ll.end(), .*/

reverse(pos, coll.end());

 

// 25 25

list<int>::iterator pos25, pos35;

pos25 = find(coll.begin(), coll.end(), //

25); //

pos35 = find(coll.begin(), coll.end(), //

35); //

 

/*

- : s25,

- pos35 . */

cout << "max: " << *max_element(pos25, pos35) << endl;

// process the elements including the last position

cout << "max:" << *max_element(pos25, ++pos35) << endl;

}

20 40. 3 , find() - coll.end() pos. reverse() , :

reverse (coll.end(), coll.end());

, .

find() , , . max_element():

max_element (pos25, pos35)

34 35:

max: 34

; :

max_element (pos25, ++pos35)

:

max: 35

, pos35 ++. ( ), pos35 ++, .

, pos25 pos35 . pos35, . :

// pos35

++pos35;

pos30 = find(pos25, s35, //

30); //

if(os30 == pos35) { cout << "30 is NOT in the subrange" << endl;}

else { cout << "30 is in the subrange" << endl;}

 

, , , , pos25 pos35. [pos25, pos35] . , , , .

, , 25 35. , , . :

if(pos25 < pos35) {

// [pos25, pos35)

}

else if(pos35 < pos25) { // [pos35, pos25)

}

else {// : , end()

}

. . : , , . :

pos25 = find(ll.begin(), coll.end(), //

25); //

pos35 = find(coll.begin(), pos25, //

35); //

if (pos35!= pos25) {

/* pos35 pos25; ,

* [pos35, pos25)

*/

}

else {

pos35 = find(pos25, coll.end(). //

35); //

if (pos35!= pos25) {

/* pos25 pos35; ,

* [pos25, pos35)

*/

}

else {

// : ,

// end()

}

35 coll. pos25. , , pos25. , .

 





:


: 2018-10-15; !; : 198 |


:

:

- , 20 40 . - .
==> ...

1667 - | 1614 -


© 2015-2024 lektsii.org - -

: 0.075 .