2016-10-02 4 views
-3

vector.size()으로 축소 된 크기를 측정 할 수 있도록 vector.erase은 벡터 객체의 크기를 조정합니까?하나 이상의 요소를 지운 후에 벡터 배열의 크기가 조정됩니까?

예 :

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

및 4 by by by;

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

내 벡터 오브젝트 v 지금 4의 크기를 가지고있다. 즉,이 작업 후에 v.size() == 4입니까?

+6

그냥 시도하거나 문서를 읽으십시오. –

+0

Btw., 크기와 용량을 혼동하지 마십시오. – deviantfan

+1

.size()가 감소하거나 감소하지 않습니다. – Kishaan92

답변

6

예, 크기 은 요소를 지울 때으로 줄입니다.


이 :) 같은 최소한의 예를 작성하여,하지만 자신을 테스트하는 것을 두려워하지 마십시오

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

그리고 우리가 기대 :

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

는 당신이 얻을 것이다 맞지? 나는 ref 말한다 의미 :

이 벡터의 요소의 수를 돌려줍니다

반환 크기입니다.

벡터에 보유 된 실제 개체의 수입니다. 은 해당 저장 용량과 반드시 ​​동일하지 않습니다.

+0

감사! 특정 셀이 비어 있는지 또는 연속 요소가 왼쪽으로 이동하는지 궁금합니다. – Kishaan92

+1

당신은 환영합니다 @ Kishaan92, 당신이 * 그 대답을 받아 들일 수 있는지 확인하십시오! :) 그런데, 당신이 의심 할 때 테스트 할 최소한의 예제를 작성하는 데 익숙해 져야합니다! :) – gsamaras

+0

예. 다음 번에 게시하기 전에 테스트 해 보겠습니다. 나는 btw를 코딩하는 초보자이다. – Kishaan92