在c ++中是否有任何数组类型的数据结构(如矢量,堆栈,队列等),我可以在其中弹出/删除任何索引中的元素,使数组自动调整大小?
示例:
int arr[]={2,5,8,10,6};
arr[2].pop();
然后阵列就会变成这样:
arr[]={2,5,10,6};
答案 0 :(得分:3)
std::vector
有一个erase()
方法可以删除给定位置的元素,并减小数组的大小。擦除位置由迭代器指定,但将n
添加到begin()
以获取它是微不足道的。
但请注意,erase()
的复杂性为O(n)
。