std::cout << ' ' << *it;
std::cout << ' ';
return 0;
}
输出:
|
|
myvector contains: 10 20 30 40 50 60 70 |
fill
将一个范围的元素赋值为给定值
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// fill algorithm example #include #include #include int main () { std::vector std::fill (myvector.begin(),myvector.begin()+4,5); // myvector: 5 5 5 5 0 0 0 0 std::fill (myvector.begin()+3,myvector.end()-2,8); // myvector: 5 5 5 8 8 8 0 0 std::cout << myvector contains:; for (std::vector std::cout << ' ' << *it; std::cout << ' '; return 0; } |
输出:
|
|
myvector contains: 5 5 5 8 8 8 0 0 |
fill_n
将某个位置开始的 n 个元素赋值为给定值
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// fill_n example #include #include #include int main () { std::vector std::fill_n (myvector.begin(),4,20); // myvector: 20 20 20 20 10 10 10 10 std::fill_n (myvector.begin()+3,3,33); // myvector: 20 20 20 33 33 33 10 10 std::cout << myvector contains:; for (std::vector std::cout << ' ' << *it; std::cout << ' '; return 0; } |
输出:
|
|
myvector contains: 20 20 20 33 33 33 10 10 |
generate
将一个函数的执行结果保存到指定范围的元素中,用于批量赋值范围中的元素
|
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 |
// generate algorithm example #include #include #include #include #include // function generator: int RandomNumber () { return (std::rand()%100); } // class generator: struct c_unique { int current; c_unique() {current=0;} int operator()() {return ++current;} } UniqueNumber; int main () { std::srand ( unsigned ( std::time(0) ) ); std::vector generate (myvector.begin(), myvector.end(), RandomNumber); std::cout << myvector contains:; for (std::vector std::cout << ' ' << *it; std::cout << ' '; std::generate (myvector.begin(), myvector.end(), UniqueNumber); std::cout << myvector contains:; for (std::vector std::cout << ' ' << *it; std::cout << ' '; return 0; } |
输出:
|
2 |
myvector contains: 57 87 76 66 85 54 17 15 myvector contains: 1 2 3 4 5 6 7 8 |
generate_n
将一个函数的执行结果保存到指定位置开始的 n 个元素中
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// generate_n example #include #include int current = 0; int UniqueNumber () { return ++current; } int main () { int myarray[9]; std::generate_n (myarray, 9, UniqueNumber); std::cout << myarray contains:; for (int i=0; i<9; ++i) std::cout << ' ' << myarray[i]; std::cout << ' '; return 0; } |
输出:
|
|
myarray contains: 1 2 3 4 5 6 7 8 9 |
iter_swap
交换两个迭代器指向的元素
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// iter_swap example #include #include #include int main () { int myints[]={10,20,30,40,50 }; // myints: 10 20 30 40 50 std::vector std::iter_swap(myints,myvector.begin()); // myints: [99] 20 30 40 50 // myvector: [10] 99 99 99 std::iter_swap(myints+3,myvector.begin()+2); // myints: 99 20 3 |