C++ 벡터
3971 단어 cpp
#include <vector>
가 있는 파일에 포함되어야 합니다.일반 배열과 마찬가지로 데이터 유형과 이름을 지정합니다. 원하는 경우 벡터를 초기화할 크기를 지정할 수 있으며 벡터의 각 인덱스를 초기화할 항목을 지정할 수도 있습니다. 다른 벡터의 내용으로 벡터를 초기화할 수도 있습니다.
std::vector<int> numsA;
std::vector<int> numsB(5);
std::vector<int> numsC(5, 9);
std::vector<int> numsD(numsC);
numsA
는 크기가 0인 벡터입니다. numsB
는 크기가 5인 벡터이며 각 인덱스는 값 0으로 초기화됩니다. numsC
는 크기가 5인 벡터이고 각 인덱스는 값 9로 초기화됩니다. 마지막으로, numsD
는 numsC
의 내용 복사본으로 초기화되어 9로 채워진 크기 5의 벡터가 됩니다.시장 조작
인덱스에 저장된 요소를 검색하고 해당 인덱스의 값을 변경할 수 있습니다.
v.at(index)
지정된 인덱스의 요소를 반환합니다v[index]
지정된 인덱스의 요소를 반환합니다v.front()
첫 번째 요소를 반환합니다v.back()
마지막 요소를 반환합니다front()
및 back()
벡터가 비어 있는지 확인하지 마십시오. 그렇다면 코드가 컴파일되지만 중지되고 EXC_BAD_ACCESS
오류가 발생합니다. 또한 생성한 범위를 벗어난 인덱스로 out_of_range
를 사용하려고 하면 at()
오류가 발생합니다.// create a char array of size 4
std::vector<char> alpha(4);
// fill values at specific indices
alpha.front() = 'A';
alpha[1] = 'B';
alpha.at(2) = 'C';
alpha.back() = 'D';
// display values at specific indices
std::cout << alpha.front() << "\n";
std::cout << alpha[1] << "\n";
std::cout << alpha.at(2) << "\n";
std::cout << alpha.back() << "\n";
// output
A
B
C
D
멤버 함수
사용할 수 있는 클래스 벡터에는 많은 기능이 있습니다.
v.capacity()
더 많은 공간을 재할당하지 않고도 벡터에 저장할 수 있는 요소의 최대 수를 반환합니다v.empty()
벡터가 비어 있으면 true(1)를 반환합니다. 거짓(0) 그렇지 않은 경우v.size()
벡터의 크기를 반환합니다v.max_size()
벡터에 삽입할 수 있는 최대 요소 수를 반환합니다.std::vector<char> alpha(4);
std::cout << alpha.empty() << "\n";
std::cout << alpha.capacity() << "\n";
std::cout << alpha.size() << "\n";
std::cout << alpha.max_size() << "\n";
// output
0
4
4
9223372036854775807
v.clear()
벡터에서 모든 요소를 삭제합니다.// initialize 4 elements to 'A'
std::vector<char> alpha(4, 'A');
std::cout << alpha.empty() << "\n";
alpha.clear();
std::cout << alpha.empty() << "\n";
// output
0
1
v.push_back()
요소를 벡터의 끝으로 푸시합니다v.pop_back()
벡터 끝에 있는 요소를 제거합니다.// create empty vector
std::vector<char> alpha;
// push elements into vector
alpha.push_back('A');
alpha.push_back('B');
alpha.push_back('C');
alpha.pop_back(); // remove last element 'C'
// loop through elements of vector and display values
for (int i = 0; i < alpha.size(); i++)
std::cout << i << ": " << alpha[i] << std::endl;
// output
0: A
1: B
더 많은 멤버 함수를 찾을 수 있습니다here.
불리
벡터는 동적이기 때문에 더 많은 요소를 추가할 수 있도록 포함하는 요소에 필요한 것보다 더 많은 공간을 차지할 수 있습니다. 더 많은 요소에 맞게 크기를 조정해야 하는 경우 메모리를 재할당해야 합니다. 따라서 벡터는 배열에 비해 더 많은 메모리를 소비하고 성능 오버헤드가 있습니다.
추가 읽을거리/참고문헌
Reference
이 문제에 관하여(C++ 벡터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/robotspacefish/c-vectors-4gmp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)