在C++中是否有任何數組類型的數據結構(如向量,堆棧,隊列等),其中我可以彈出/刪除任何索引中的元素,以便數組將自動調整大小?在C++中彈出任何元素後自動調整數組大小
實施例:
int arr[]={2,5,8,10,6};
arr[2].pop();
然後是陣列將變成這樣:
arr[]={2,5,10,6};
在C++中是否有任何數組類型的數據結構(如向量,堆棧,隊列等),其中我可以彈出/刪除任何索引中的元素,以便數組將自動調整大小?在C++中彈出任何元素後自動調整數組大小
實施例:
int arr[]={2,5,8,10,6};
arr[2].pop();
然後是陣列將變成這樣:
arr[]={2,5,10,6};
std::vector
具有erase()
方法,其去除在給定位置的元素,並減小了尺寸陣列。擦除位置由迭代器指定,但將n
添加到begin()
以獲取它是很微不足道的。請注意,erase()
的複雜度爲O(n)
。
關於'std :: vector'的性能 - 這裏是2014年Build 2014上的Herb Sutter談論預取以及它是如何快速迭代向量:https://youtu.be/ TJHgp1ugKGM?t = 1410 –
由於現代CPU的高速緩存,我意識到向量的反直覺性能。但是,不改變它是'O(n)'的事實。 –
-std :: vector' –