在Python中,为了将元素插入到列表中,我们只使用内置方法:insert(index,value)。
e.g。
lst = [1, 3, 4]
lst.insert(1, 2)
print(lst)
现在列表变为打印:
[1, 2, 3, 4]
C ++中是否有内置函数/方法来实现与数组相同的目标?如果没有,构建此插入方法的最简洁的代码是什么?
答案 0 :(得分:2)
有std::list::insert()可以满足您的需求。
但是,链接列表在现代机器上通常是一个表现非常糟糕的数据结构,因为所有指针都会追逐它。通常std::vector会表现得更好,因为它对CPU预取器更友好,即使它具有更差的理论“大O”性能特征。 std::vector
也有std::vector::insert()。
答案 1 :(得分:1)
您可以使用std::vector
例如
std::vector<int> arr = {1, 3, 4};
arr.insert(arr.begin() + 1, 2);
for(auto& val : arr)
std::cout << val << " ";
此外,您可以使用std::list
,看起来相同,但是您无法将{1}添加到std::list<int>::iterator
,使用arr.insert(++arr.begin(), 2);