):
copy (istream_iterator<int>(cin), istream_iterator<int>(),
back_inserter(v)); // v
unique_copy (istream_iterator<int>(cin), istream_iterator<int>(),
back_inserter(v)); // v
2
, 5 (, , ..) . . , . .
1
:
1. .
2. ( ), .
3. , , 4
4. 3
5. , 4
6. accumulate()
7. , , 3, .
2
:
1. .
2. ( ), .
3. , , 4
4. 3
5. , 4
6. accumulate()
7. , , 3, .
3
:
1. .
2. ( ), .
3. , , 4
4. 3
5. 4
6. accumulate()
7. , , 3, .
4
:
|
|
1. .
2. ( ), .
3. , , , 4
4. 3 .
5. , 4.
6. accumulate()
7. , , 3, .
5
:
1. .
2. ( ), .
3. , 4
4. 3 .
5. , 4.
6. accumulate()
7. , , 3, .
6
:
1. .
2. ( ), .
3. , , 4
4. 3 .
5. , 4.
6. accumulate()
7. , , 3, .
7
:
1. .
2. ( ), .
3. , , 4
4. 3 .
5. , 4.
6. accumulate()
7. , , 3, .
8
:
1. .
2. ( ), .
3. , , 4
|
|
4. 3
5. , 4.
6. accumulate()
7. , , 3, .
9
:
1. .
2. ( ), ,
3. , , 100%
4. 3 .
5. , 4.
6. accumulate()
7. , , 3, .
10
:
1. .
2. ( ), .
3. , , 4
4. 3 .
5. , 4.
6. accumulate()
7. , , 3, .
5 ++
1.
.
, , .. -
(*p).elem
p - , elem.
:
->
.. :
p->elem
1. ++.
C++ :
1. (, , , vector)
2. (, , , )
3. , , , , sort() reverse().
2. .
++
.
, . ++ ( ), ==,!= * (), . :
- (input, output) ( , input , output ),
- ( )
- ( --),
- (+=, -=, +, -,
-).
, , , . , vector string , list () - .
|
|
(vector<int> vector<string>) , -::- - iterator, reverse_iterator, const_iterator const_reverse_iterator. .
vector<int>. :
- vector<int>::iterator - , ( begin() end())
- vector<int>::reverse_iterator - , ( rbegin() rend())
- vector<int>::const_iterator - , ( const_reverse_iterator, Visual C++ ).
, . - :
vector<int>::iterator i;
, .
:
vector<int>v; //
//
//
vector<int>::iterator i;
// v.begin() ,
// v.end() -
// i++
for (i = v.begin(); i!= v.end(); i++) {
cout << *i; // *i ,
//
*i = 200; //
}
iterator reverse_iterator ( - ), - . reverse_iterator:
vector<int>::reverse_iterator ri;
// v.rbegin() ,
//
// v.rend() -
// -
// ri++
for (ri = v.rbegin(); ri!= v.rend(); ri++)
cout << *i; //
1 2 3, 3 2 1
const_iterator , , .
vector<int>::const_iterator ci = v.begin();
*ci = 200; //
, (, sort() reverse()) , - .
sort(v.begin(), v.end());
iterator - , vector. Visual C++ , , ,
using std::vector;
:
using std::vector<int>;
++, , . ,
using namespace std;
3. .
++, , . - , ( ), ( ). "-", ,
|
|
-[].
: map multimap. , map , multimap - ( ).
map multimap
<map> std.
map.
3.1. map
map, vector, , - :
map<string,int> m; //
map<int,int> mi; //
. :
m["key1"] = 100;
"key1" => 100
mi[-2] = 100; // -2 => 100
:
int i = m["key1"];
, , "" - " ". 0.
, m "key1", i , , - "key1" => 0 i 0.
, - .
map. map<string,int>. , , pair<string,int>, . - first second. first string, second - int, first , second - . :
m.insert(make_pair(string("key1"),100));
make_pair() - , pair
, .
, . , , , count(), (
map count() 0 1, multimap -
1).
if (m.count("key1")!= 0) {
//
}
, , - find(), , ( pair), ,
end(), :
map<string,int>::iterator mi;
if ((mi = m.find("key1"))!= m.end()) {
//
// mi->first, - mi->second
cout << "=" << mi->second << endl;
}
, , , :
m["key1"]++;
, key1 :
- - 1 ( , , ),
- - , 0, 1.
:
map<string,int>::iterator wi;
for (wi = m.begin(); wi!= m.end(); wi++)
cout << "key=" << wi->first << " value=" << wi->second << endl;
map , , , - +=.
3.2. multimap.
multimap map , . [] - equal_range(), lower_bound() upper_bound() equal_range() pair , ( lower_bound()), - ( upper_bound()). :
|
|
multimap<string,int> mm;
multimap<string,int>::iterator mi;
string key = "key1";
cout << "key=" << key;
for (mi = mm.lower_bound(key); mi!= mm.upper_bound(key); mi++)
cout << "value=" << mi->second << endl;
multimap insert() ( , map). - count() > 1.
3.3. , .
, , , . :
1) map,
map<string, vector<string> >
2) multimap - multimap<string, string> - equal_range()
4. (set multiset)
, . , , , .
: , ( set) , ( multiset). set.
<set>. - :
set<string> words;
- insert():
words.insert("word1");
words.insert("word2");
map:
if (words.count("word1")!= 0) {
//
}
set<string>::iterator si;
if ((si = words.find("word1"))!= words.end()) {
//
cout << "=" << *si << endl;
}
//
for (si = words.begin(); si!= words.end(); si++)
cout << *si << " ";
1
, , , . . , . , , . . . .
2
, , , , . . , . , , . - . .
. .
3
, , , , . . (map multimap), - . , , . - . . . .
-----
-----
( )
-----
-
-
-
-
- 1
-> 1 1
-> 4
-> 9
..
4
, , , ( / ). . , . , , . . . .
5
, , , ( / , ). . , . , , . . . .
6
, , , ( / ). ( ). , . , , . . . .
7
, , , . . (map multimap), . , . , , . . . . .
-----
-----
( )
-----
-
-
-
-
-> (2)
-> (1)
-> (1)
-> (1)
-> (3)
-> (1)
-> (1)
8
, , , , . . . - . (map multimap), . , , . . . .