iterator insert ( iterator position, const T& x );
这是std::Vector
类中插入运算符的函数声明。
该函数的返回类型是指向已插入元素的迭代器。我的问题是,在考虑速度至关重要的大型程序中,鉴于此返回类型,插入到开头的最有效方式是什么(因此我正在寻找最具计算效率的方法)。它是以下内容吗?
//Code 1
vector<int> intvector;
vector<int>::iterator it;
it = myvector.begin();
for(int i = 1; i <= 100000; i++){
it = intvector.insert(it,i);
}
或者,
//Code 2
vector<int> intvector;
for(int i = 1; i <= 100000; i++){
intvector.insert(intvector.begin(),i);
}
基本上,在 Code 2 中,参数是,
intvector.begin()
与Code 1中返回的迭代器相比,计算上评估起来比较“昂贵”/耗费成本,或者两者应该同样便宜/昂贵?
list
或deque
。 - wkldeque
。 - GManNickG