나는이 주제 (배열)에서 내 의견으로는 명확하지 않은 C++ 읽기 Stroustrup의 책을 연구 중이다. 에서 내가 이해 한 내용을 C++이 배열의 두 종류 (델파이와 같은) :라고 벡터동적 및 정적 배열
std::vector<int> a;
a.push_back(10);
a.push_back(487);
a.push_back(-22);
이
int test[3] = {10,487,-22};
동적 배열처럼 선언
정적 배열 나는 이미 이것에 대한 해답을 보았지만 (내부에 수많은 선과 개념이 있었다) 개념을 분명히하지 않았다. 내가 vector
의 이해 무슨에서
더 많은 메모리를 소비하지만 그들은 (사실, 동적으로) 자신의 크기를 변경할 수 있습니다. 배열은 대신 컴파일 타임에 주어진 고정 크기를가집니다.
Stroustrup 장에서 이유는 설명하지 않고 배열이없는 동안 벡터가 안전하다고 설명했습니다. 나는 그를 정말로 신뢰하지만, 왜 그럴까요? 이유 안전은 기억의 위치와 관련이 있습니까? (힙/스택)
안전하다고 생각하면 왜 벡터를 사용하고 있는지 알고 싶습니다.
std :: vector, 배열 및 포인터를 사용하여 장점 및 함정에 대해 질문하는 경우 매우 광범위한 토론입니다. –
내 코드에서는 이전 버전에서 사용 된 사람을 찾은 경우에만 항상 벡터와 배열을 사용하려고합니다. 하지만 왜 –
std :: vector가 이전에 배열로 해결 된 대부분의 작업을 수행 한 잘 연마 된 기계인지 알고 싶습니다. std :: vector의 설계 방법과 이유를 연구하고 싶습니다. 여기에는 알고리즘 작동뿐만 아니라 자원 관리 (3/5 규칙)가 포함됩니다. –