초급자에게 질문하는 것은 매우 유감 스럽지만 온라인에서 모순되는 정보를 찾고 있습니다. 나는 대학에 질문 할 것이지만 내년 2 월까지는 나갈 것입니다.벡터의 크기가 자동으로 조정됩니까?
벡터의 크기가 자동으로 조정됩니까? 또는 더 많은 공간이 필요하면 주기적으로 현재 크기를 확인하고 크기를 조정해야합니다. 그것은 자동으로 나를 위해 크기를 조정하는 것으로 보이지만 그것이 마법의 지팡이를 흔들거나 컴파일러인지 확실하지 않습니다.
초급자에게 질문하는 것은 매우 유감 스럽지만 온라인에서 모순되는 정보를 찾고 있습니다. 나는 대학에 질문 할 것이지만 내년 2 월까지는 나갈 것입니다.벡터의 크기가 자동으로 조정됩니까?
벡터의 크기가 자동으로 조정됩니까? 또는 더 많은 공간이 필요하면 주기적으로 현재 크기를 확인하고 크기를 조정해야합니다. 그것은 자동으로 나를 위해 크기를 조정하는 것으로 보이지만 그것이 마법의 지팡이를 흔들거나 컴파일러인지 확실하지 않습니다.
당신이 push_back
또는 insert
를 사용하는 경우는, 예 벡터 자체 크기를 조정합니다. 여기 데모입니다 : 당신이 a[3] = 5
을 할 경우 지금 기억
1 2 3
Current size 3
:
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector <int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
for (int value : a) {
cout << value << " ";
}
cout << endl << "Current size " << a.size() << endl;
return 0;
}
그것은으로 출력을 제공합니다. 벡터 크기를 자동으로 조정하지 않습니다.
원하는 경우 수동으로 벡터의 크기를 조정할 수도 있습니다. 데모는 위의 코드에 다음 코드를 추가하십시오.
1 2 3
Current size 3
1 2 3 0 0 0
Current size 6
그것은 당신이 답을 찾은 것 같아 :
a.resize(6);
for (int value : a) {
cout << a << " ";
}
cout << endl << "Current size " << a.size() << endl;
는 이제 출력 것이다.
Nit pick :'vector
또는 'for (const auto & e : a) {std :: cout << e << "" "; }'C++ 11 이후. – Jarod42
@TonyD 나는'C'에서 주로 코드를 작성하고'C++'에 익숙하지 않으므로'C++ '코드의 대부분은'C'처럼 보입니다. 또한 대답에 영향을 미치지 않습니다. 어쨌든 언급 해 주셔서 고맙습니다. –
벡터의 크기가 자동으로 조정됩니까?
예, 그들은 할, 당신은 아주 쉽게 그 자신을 설득 할 수
std::vector<int> squares;
for (int i = 0; i < 100; ++i)
{
squares.push_back(i * i);
std::cout << "size: " << squares.size() << "\n";
}
짧은 대답 : 예. –
'insert' 또는'push_back'을 사용하면 크기가 조정되지만, 아래 첨자 연산자를 사용하는 경우에는 조정되지 않습니다 ('std :: map <>'처럼). – ildjarn
전체 분석은 http://stackoverflow.com/questions/12271017/initial-capacity-of-vector-in-c에서 확인하십시오. –