gpt4 book ai didi

c++ - 在前面插入 vector

转载 作者:IT老高 更新时间:2023-10-28 14:01:00 42 4
gpt4 key购买 nike

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);
}

本质上,在代码 2 中,是参数,

intvector.begin() 

与在代码 1 中使用返回的迭代器相比,计算“成本高”还是应该同样便宜/昂贵?

最佳答案

如果您的程序的关键需求之一是在容器的开头插入元素:那么您应该使用 std::deque 而不是 std::vectorstd::vector 只擅长在末尾插入元素。

STL diagram for choosing containers

在 C++11 中引入了其他容器。我应该开始使用这些新容器查找更新后的图表并将其插入此处。

关于c++ - 在前面插入 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4226606/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com