// myvector: 10 99 [40] 99
std::cout << myvector contains:;
for (std::vector
std::cout << ' ' << *it;
std::cout << ' ';
return 0;
}
输出:
|
|
myvector contains: 10 99 40 99 |
move
将一个范围中的元素移动到新的位置处
|
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 |
// move algorithm example #include #include #include #include #include int main () { std::vector std::vector // moving ranges: std::cout << Moving ranges... ; std::move ( foo.begin(), foo.begin()+4, bar.begin() ); std::cout << foo contains << foo.size() << elements:; std::cout << (each in an unspecified but valid state); std::cout << ' '; std::cout << bar contains << bar.size() << elements:; for (std::string& x: bar) std::cout << [ << x << ]; std::cout << ' '; // moving container: std::cout << Moving container... ; foo = std::move (bar); std::cout << foo contains << foo.size() << elements:; for (std::string& x: foo) std::cout << [ << x << ]; std::cout << ' '; std::cout << bar is in an unspecified but valid state; std::cout << ' '; return 0; } |
输出:
|
2 3 4 5 6 |
Moving ranges... foo contains 4 elements: (each in an unspecified but valid state) bar contains 4 elements: [air] [water] [fire] [earth] Moving container... foo contains 4 elements: [air] [water] [fire] [earth] bar is in an unspecified but valid state |
move_backward
将一个范围中的元素按逆序移动到新的位置处
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// move_backward example #include #include #include int main () { std::string elems[10] = {air,water,fire,earth}; // insert new element at the beginning: std::move_backward (elems,elems+4,elems+5); elems[0]=ether; std::cout << elems contains:; for (int i=0; i<10; ++i) std::cout << [ << elems[i] << ]; std::cout << ' '; return 0; } |
输出:
|
|
elems contains: [ether] [air] [water] [fire] [earth] [] [] [] [] [] |
random_shuffle
随机打乱指定范围中的元素的位置
|
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 |
// random_shuffle example #include #include #include #include #include // random generator function: int myrandom (int i) { return std::rand()%i;} int main () { std::srand ( unsigned ( std::time(0) ) ); std::vector // set some values: for (int i=1; i<10; ++i) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9 // using built-in random generator: std::random_shuffle ( myvector.begin(), myvector.end() ); // using myrandom: std::random_shuffle ( myvector.begin(), myvector.end(), myrandom); // print out content: std::cout << myvector contains:; for (std::vector std::cout << ' ' << *it; std::cout << ' '; return 0; } |
输出:
|
|
myvector contains: 3 4 1 6 8 9 2 7 5 |
remove
将一个范围中值等价于给定值的元素删除
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// remove algorithm example #include #include int main () { int myints[] = {10,20,30,30,20,10,10,20}; // 10 20 30 30 20 10 10 20 // bounds of range: int* pbegin = myints; // ^ int* pend = myints+sizeof(myints)/sizeof(int); // ^ ^ pend = std::remove (pbegin, pend, 20); // 10 30 30 10 10 // ^ ^ std::cout << range contains:; for (int* p=pbegin; p!=pend; ++p) std::cout << ' ' << *p; std::cout << ' '; return 0; } |
输出:
|
|
range contains: 10 30 30 10 10 |
remove_if
将一个范围中值满足给定条件的元素删除
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// remove_if example #include #include |