/************************************************************************* * * 无论何时,如果使用的算法需要指定一个目标区间,要么必须确保区间足够大 * 要么确保它会随着算法的运行而增大。 * 要在算法执行过程中增大目标区间,请使用插入型的迭代器,如ostream_stream, * back_inserter,front_inserter,inserter 返回的迭代器。 * ************************************************************************/ #include<iostream> #include<vector> #include<algorithm> //for_each,transform #include<iterator> //istream_iterator,back_inserter using namespace std; int opIncrement(int val){ return ++val;} int main() { vector<int> iVecValues(10,1); //10个1 vector<int> iVecResult; cout<<&(*iVecResult.end())<<","<<iVecResult.size()<<endl; transform(iVecValues.begin(),iVecValues.end(), back_inserter(iVecResult),opIncrement); //插入型迭代器 for_each(iVecResult.begin(),iVecResult.end(), [](int i){cout << i << ",";}); cout << endl; cout<<&(*iVecResult.end())<<","<< iVecResult.size()<<endl; return 0; }
时间: 2024-11-08 20:21:57