.


:




:

































 

 

 

 


, , , 4




):

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





:


: 2017-02-25; !; : 323 |


:

:

- , , .
==> ...

1885 - | 1673 -


© 2015-2024 lektsii.org - -

: 0.163 .