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. , .
|
|