2016-10-02 87 views
-3

vector.erase調整矢量對象的大小,以便我可以使用vector.size()來測量縮小的大小嗎?例如擦除一個或多個元素後,矢量數組是否調整大小?

;

vector<int> v(5); 
v = {1,2,3,4,5}; 

我想刪除4;

v.erase(v.begin()+4); 

我的矢量對象v現在的大小是4。換句話說就是在這個操作之後是v.size() == 4

+6

只需嘗試一下或閱讀文檔。 –

+0

順便說一句,不要混淆大小和容量。 – deviantfan

+1

.size()是否減小。 – Kishaan92

回答

6

是的,尺寸減少隨着您擦除元素。


不要害怕,雖然測試自己,寫一個小例子,像這樣:):

#include <iostream> 
#include <vector> 

using namespace std; 

int main() 
{ 
    vector<int> v(5); 
    v = {1,2,3,4,5}; 
    cout << v.size() << endl; 
    v.erase(v.begin()+4); 
    cout << v.size() << endl; 
    return 0; 
} 

,你會得到:

[email protected]:~$ g++ -Wall -std=c++0x main.cpp 
[email protected]:~$ ./a.out 
5 
4 

,我們將期待那對嗎?我的意思是說ref

返回大小

返回向量元素的數量。

這是向量中保存的實際對象的數量,而不是 必須等於其存儲容量。

+0

謝謝!我想知道那個特定的單元是空置的還是連續的元素會向左移動! – Kishaan92

+1

歡迎您@ Kishaan92,確保您*接受*答案! :)順便說一句,你應該習慣於編寫最小的例子來測試,當你有疑問時! :) – gsamaras

+0

是的,當然!我將在下次發佈之前對它進行測試。我是一個新手編碼btw :) – Kishaan92

相關問題