벡터 (STL)
"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 본문
C++ 표준 템플릿 라이브러리(STL)에서 벡터(vector)는 동적 배열을 나타내는 시퀀스 컨테이너입니다. 다음은 벡터에 대한 자세한 설명입니다.
벡터의 특징
- 동적 크기: 벡터는 필요에 따라 자동으로 크기가 조정됩니다. 요소를 추가하거나 제거하면 벡터가 자체적으로 메모리 관리를 처리합니다.
- 요소 접근: 인덱스를 사용하여 벡터의 요소에 빠르게 접근할 수 있습니다 (예 : `myVector[3]`).
- 순차 저장: 요소는 메모리에 연속적으로 저장되므로 반복자를 사용하여 효율적으로 순회할 수 있습니다.
- 끝에 추가/제거: 벡터의 끝에 요소를 추가하거나 제거하는 작업은 일반적으로 빠릅니다 (상수 시간). 그러나 벡터의 중간에 요소를 삽입하거나 제거하는 작업은 더 많은 시간이 소요될 수 있습니다 (선형 시간).
벡터의 사용벡터를 사용하려면 `
```c++
#include
```
벡터의 생성 및 초기화```c++
std::vector
std::vector
std::vector
std::vector
```
벡터의 주요 멤버 함수
- `push_back(value)`: 벡터의 끝에 새 요소를 추가합니다.
- `pop_back()`: 벡터의 마지막 요소를 제거합니다.
- `size()`: 벡터의 요소 수를 반환합니다.
- `empty()`: 벡터가 비어 있는지 확인합니다 (비어 있으면 true, 그렇지 않으면 false).
- `at(index)`: 지정된 인덱스의 요소를 반환합니다 (범위 검사 수행, 범위를 벗어나면 예외 발생).
- `operator[]`: 지정된 인덱스의 요소를 반환합니다 (범위 검사 없음).
- `front()`: 벡터의 첫 번째 요소를 반환합니다.
- `back()`: 벡터의 마지막 요소를 반환합니다.
- `begin()`, `end()`: 벡터의 시작과 끝을 가리키는 반복자(iterator)를 반환합니다.
- `insert()`, `erase()`: 벡터의 특정 위치에 요소를 삽입하거나 제거합니다.
- `clear()`: 벡터의 모든 요소를 제거합니다.
- `resize()`: 벡터의 크기를 변경합니다.
- `capacity()`: 벡터에 할당된 메모리 크기를 반환합니다.
벡터 사용 예제```c++
#include
#include
int main() {
std::vector
myVector.push_back(10);
myVector.push_back(20);
myVector.push_back(30);
std::cout << "벡터의 크기: " << myVector.size() << std::endl;
std::cout << "벡터의 요소: ";
for (int i = 0; i < myVector.size(); ++i) {
std::cout << myVector[i] << " ";
}
std::cout << std::endl;
std::cout << "벡터의 요소 (반복자 사용): ";
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
myVector.pop_back();
std::cout << "마지막 요소 제거 후 벡터의 크기: " << myVector.size() << std::endl;
return 0;
}
```
벡터와 배열의 비교벡터와 배열과 같은 점과 다른 점은 다음과 같습니다:
- 유사점:
- 요소에 대한 빠른 접근 (인덱스 사용).
- 순차적인 데이터 저장.
- 차이점:
- 크기: 배열은 크기가 고정되어 있지만 벡터는 동적으로 크기를 조절할 수 있습니다.
- 메모리 관리: 배열은 사용자가 직접 메모리를 관리해야 할 수 있지만, 벡터는 자동으로 메모리를 관리합니다.
- 기능: 벡터는 배열보다 더 많은 기능 (예: `push_back`, `pop_back`, `insert`, `erase`)을 제공합니다.
- 성능: 삽입 및 삭제에서 배열은 요소의 이동이 필요하지만, 벡터는 capacity가 충분하다면 상수시간, 그렇지 않다면, 선형시간안에 수행합니다.
이 정보가 도움이 되었기를 바랍니다.
| 벡터 (STL) | |
|---|---|
| C++ 표준 라이브러리 | |
| 종류 | 표준 템플릿 라이브러리 |
| 포함 헤더 | |
| 정의 | |
| 설명 | 시퀀스 컨테이너 |
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com