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;
}

 

+ Recent posts