Vector 


Vector 는 대표적인 시퀀스 컨테이너이며 배열과 비슷하다


Vector는 동적 배열 구조를 C++로 구현한 것이다. C의 배열(빠른 랜덤접근이 가능)처럼 행동하지만 자동으로 배열의 크기조절과

객체의 추가, 삭제가 가능하다.


Vector는 C++ 표준 템플릿 라이브러리 중 하나여서 어떤 타입이라도 저장 가능하지만 한번에 한 타입만 저장 가능



★ 배열과의 차이점 : 

  배열

Vector 

 메모리에서 연속적 = 하나의 타입을 가진 블록이 여러개가 붙어있다

 즉, 같은 타입이어야 한다


템플릿 클래스이기 때문에 원하는 모든 타입의 일반적인 배열 생성가능

무조건 데이터를 선형적으로 만들려고 함.

If 저장공간 < 데이터 , 현재 보유 메모리의 2배만큼 할당




*시퀀스 컨테이너 : 저장원소가 삽입 순서에 따라 상대적인 순서를 가지는 컨테이너


Vector 는 임의 접근 반복자 ( Random Access Iterator ) 를 지원하는 배열 기반 컨테이너이다


* 임의 접근 반복자 : 양방향 반복자의 모든 기능을 포함, *연산자 쓰기 / ++, -- 연산자로 앞뒤 이동하기 / 거리에 상관없이 상수시간내 이동가능



사용법


#include<vector>   //라이브러리 추가

vector<int> A;


/* 2차원 배열같이 사용하려고 한다면 */

vector<vector <int> > Map(Row , vector<int>(Column,0))  ; 

      (여기서 >>를 붙여쓰면 오류가 난다. 다른 연산자로 인식해버림 ) 

 // vector <int>형 벡터를 행 Row개  , 열  Column개로 할당하고 초깃값 0으로 지정한다는 뜻

                   




Assert


assert () : 함수안에서 인자를 바을 때 그 인자값이 정상으로 들어왔는지 판단하는 역할을 함


사용법


#include <cassert>  // c++ 라이브러리

#include <assert.h > // c


function (int a)

{

     assert ( a> 0 );

...

}


만약 assert() 안의 구문이 거짓이면 오류를 띄움.

'Engineering > Algorithm' 카테고리의 다른 글

[C++] 2차원 배열 동적 할당 방법  (0) 2016.11.17

+ Recent posts