Vector Template Class
- Vector template class는 동적 배열에 속하는 string 클래스와 유사하다
- 프로그램이 실행되는동안 vector 객체의 크기를 세팅할 수 있고
- 새로운 데이터를 마지막에 추가하거나 중간에 데이터를 삽입할 수 있다
- 실제로 vector 클래스는 메모리를 관리하기 위하여 new와 delete를 자동으로 진행한다
- vector 클레스는 <vector> 헤더파일에 있다
- vector<typeName> vt(n_elements);
Array Template Class
- vector는 다소 비효율적인 면이있다
- 만약 사용자가 고정된 크기의 배열만 필요하다면 array를 사용하는 것이 더 좋을것이다
- 그러나 안전성과 편리성은 다소 줄어들 수 있다
- Array객체는 free store 대신에 고정된 크기의 고정 메모리 대입을 사용하여 built-In array와 동일한 수준의 효율성을 지닌다
- array 클래스는 <array> 헤더파일에 있다
- array<typeName, n_elements> arr; n_elements개의 typeName 데이터타입을 가진 array 객체를 생성해라
#include <iostream>
#include <vector> // STL C++98
#include <array> // C++11
int main() {
using namespace std;
// C, origin C++
int a1[4] = { 1,2,3,4 };
// C++ 98 STL
vector<int> a2(4);
a2[0] = 1;
a2[1] = 2;
a2[2] = 3;
a2[3] = 4;
// C++ 11
array<int, 4> a3 = { 1,2,3,4 };
array<int, 4> a4 = a3;
cout << "a1[2] : " << a1[2] << " at " << &a1[2] << endl;
cout << "a2[2] : " << a2[2] << " at " << &a2[2] << endl;
cout << "a3[2] : " << a3[2] << " at " << &a3[2] << endl;
cout << "a4[2] : " << a4[2] << " at " << &a4[2] << endl;
return 0;
}
'개발언어 > C++' 카테고리의 다른 글
(C++) 6. cctype 라이브러리 (0) | 2023.09.08 |
---|---|
(C++) 5. for, while, do while, if, if else, (0) | 2023.09.07 |
(C++) 3. 동적 배열과 동적 구조체 (0) | 2023.09.07 |
(C++) 2. 포인터와 메모리 해제 (0) | 2023.09.07 |
(C++) 1. Struct(구조체), Union(공용체), Enum(열거체) (0) | 2023.09.06 |