stl vector erase

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vector>
#include <iostream>
using namespace std;

/*
  iterator erase (const_iterator position);
  iterator erase (const_iterator first, const_iterator last);
 */

void print(const vector<int> &v)
{
    vector<int>::const_iterator iter = v.begin();
    for(; iter != v.end(); ++iter)
        cout << *iter << " ";
    cout << endl;
}

void test_case()
{
    vector<int> v;
    ; i++)
        v.push_back(i);
    print(v);

// erase 3 and 5
    vector<int>::iterator iter;
    for(iter = v.begin(); iter != v.end();)
    {
        )
        {
            iter = v.erase(iter);
        }
        else
        {
            iter++;
        }
    }
    print(v);

// erase 10
    for(iter = v.begin(); iter != v.end();)
    {
        )
        {
            iter = v.erase(iter);
        }
        else
        {
            iter++;
        }
    }
    print(v);

// erase from [first,last)
);
    print(v);
    cout << *iter << endl;
}

int main()
{
    test_case();
    ;
}
/*
1 2 3 4 5 6 7 8 9 10
1 2 4 6 7 8 9 10
1 2 4 6 7 8 9
4 6 7 8 9
4
*/

上一篇:Python之数学题目练习


下一篇:BZOJ 2762: [JLOI2011]不等式组( 平衡树 )