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