-
vector<STL> 사용하기(2)@ 16. 1 ~ 17. 1/STL 2013. 3. 18. 23:18
저장방식은 배열과 비슷하다. 그러나 차이점이라고는 크기의 조절이 가능하고 앞 뒤의 추가 삭제가 자유롭다는 것이다.
vector 사용방법
1. 헤더파일 #include<vector>를 포함한다.
2. vector<데이터타입> 변수이름
vector<int> vector1;
vector<int> *vector2 = new vecotr<int>;
자세한 멤버는 따로 확인이 필요하고..자주 사용하는 것을 알아보겠음.
push_back() : 마지막 위치에 데이터 추가
vector<int> vector1;
vector1.push_back(1);
pop_back() : 마지막 위치의 데이터 삭제
bector1.pop_back();
begin() : 첫 번째 위치반복자 반환
vector<int>::iterator iterBegin = vector1.begin();
front() : 첫 번째 데이터 참조 반환
int& firstVal=vector1.front();
end() : 마지막 다음 위치 반복자 반환
vector<int>::iterator iterEnd = vector.end();
back() : 마지막 데이터 참조반환
int& lastVal = vector1.back();
clear() : 저장한 모든 데이터 삭제
vector1.clear();
empty() : 백터에 데이터가 존재하는지 판단
bool bEmpty=vector1.empty();
size() : 백터에 저장된 데이터의 개수 반환
vector<int>::size_type size = vector1.size();
* vector는 다음과 같이 int val = vector1[5];
배열과 같이 사용할 수 있다!
지정한 위치에 데이터를 삽입할 수 있다.
vector<int>iterator iterInsertPos=vector1.begin();
vector1.insert(iterInsertPos,10);
첫번째 위치에 10을 삽입한다.
vector<int>iterator iterInsertPos=vector1.begin();
iterInsertPos++;
vector1.insert(iterInsertPos,3,500);
두번째 위치에 500을 3번 삽입한다.
500, 500, 500 이렇게..
지정한 위치에 다른 백터를 이어서 복사하는것.
vector<int> vector1;
vector<int> vector2;
vector1.push_back(10);
vector1.push_back(20);
vector2.push_back(1);
vector2.push_back(2);
iterInsertPos=vector1.begin();
vector1.insert(iterInsertPos, vector2.begin(), vector2.end());
출력결과는
1,2,10,20 으로 출력..
이때 중요한 것은..for으로 출력할때 *iterInsertPos로 할 수 있지만..
for(iterInserPos;iterInsertPos!=iterend;iterInsertpos++)
여기서 iterend의 값도 필요하다
즉, vector<int>::iterator iterend=end();
이게 필요하다는것..그리고
처음 가르켰던 주소가 나중에 vector2가 삽입되면서 변했으므로
vector<int>::iterator iter=vector3.begin();
vector<int>::iterator itere=vector3.end();
vector3.insert(iter, vector4.begin(), vector4.end()); //변했음.iter=vector3.begin();
itere=vector3.end(); //재위치를 받는중..이렇게 재위치를 다시 받아야한다..
안그럼 엉뚱한곳으로 가르키고..망함...오류!
...아 오늘 너무 졸리다.
'@ 16. 1 ~ 17. 1 > STL' 카테고리의 다른 글
컨테이너 & 반복자 & 알고리즘 & 함수객체 (0) 2014.04.10 STL list 주요 특징 정리 (0) 2013.05.27 STL vector / deque 주요 특징 정리 (0) 2013.05.27 vector<STL> 사용하기 (0) 2013.03.10 STL List(1) (0) 2013.02.11