int main()
{
vector<int> vi;
vi.reserve(10);
// back_insert_iterator<vector<int> > iter(vi);
vector<int>::iterator iter = vi.begin();
*iter = 1;
++iter;
*iter = 2;
++iter;
*iter = 3;
back_insert_iterator<std::__1::vector<int> > iterb(vi);
back_inserter(vi) = 4;
back_inserter(vi) = 5;
vi.reserve(vi.size() * 2);
copy(vi.begin(), vi.end(), vi.end());
ostream_iterator<int> os(cout, " ");
copy(vi.begin(), vi.end(), os);
}
問題1,爲什麼cout
打印4 5
,當我預計它將打印1 2 3 4 5 1 2 3 4 5
? 問題2,當我用copy(vi.begin(), vi.end(), back_insert(vi))
替換它時,它會打印4 5 4 5
,爲什麼?迭代器不訪問全矢量
什麼是 「__1」 嗎? –
我不知道,這是編譯器自動添加的,我用的ide是xcode 4.6.2; –