Vector, Deque
#include <vector>
@ vector <int> v 비어있는 vector v를 생성
@ vector <int> v(5) 기본값이 0인 5개의 원소 생성
@ vector <int> v(5 , 2) 기본값이 2인 5개의 원소 생성
@ vector <int> v2(v1) v1과 똑같이 복사 생성
@ v.assign (5,2) 2의 값으로 5개의 원소 할당
@ v [index] index번째 원소를 반환
@ v.at(index) index번째 원소를 반환
@ v.front() 첫 번째 원소를 반환
@ v.back() 마지막 원소를 반환
@ v.push_back(7) 마지막 원소 뒤에 7을 삽입
@ v.pop_back() 막지막 원소 제거;
@ v.size() 원소의 개수를 리턴
@ v.capacity() 할당된 공간의 크기를 리턴
@ v.clear() 모든 원소를 제거, size는 줄고 capacity는 그대로
@ v.empty() vector가 비었으면 true 리턴, 아니면 false 리턴
반복자와 함께 사용
@ vector <int> :: iterator iter= v.begin() 반복자로써 포인터와 비슷한 역할 수행
ex) *iter -->> 첫 번째 원소 값 반환
ex) iter++ or iter+1 -->> *iter 두 번째 원소 값을 반환한다
@ v.begin() 첫 번째 원소를 가리킴
@ v.end() 마지막 원소의 다음 원소를 가리킴
vector<int> :: reverse_iterator iter
@ v.rbeing() reverse being을 가리킨다(거꾸로 해서 첫 번째 원소)
@ v.rend() reverse end을 가치 킨다(거꾸로 해서 마지막의 다음을 가리킴)
@ v.erase(iter) iter이 가리키는 원소 제거
@ v.insert(iter,3) iter 위치에 3의 값을 삽입
@ v.insert(iter,2,3) iter 위치에서 3의 값을 2개 삽입
@ v.resize(n) 크기를 n으로 변경, 더 커지는 경우 default 값은 0으로 초기화
@ v.resize(n,3) 크기를 n으로 변경, 더 커지는 경우 default값은 3으로 초기화
#include <deque>
@ deque <int> dq
<vector와의 차이점>
@ dq.push_back(3) 마지막 원소 뒤 3 삽입
@ dq.push_front(3) 첫 원소 앞에 3 삽입
@ dq.pop_back() 마지막 원소 삭제
@ dq.pop_front() 첫 원소 삭제
그 외는 vector와 같음
<c++코드 Vector>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#include<iostream>
#include<vector>
using namespace std;
int main(void)
{
vector<int> v;
v.push_back(1); // vector v에 계속해서 원소 삽입
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
v.push_back(6);
v.pop_back(); // 맨 마지막 원소 제거
cout<<v[0]<<endl; // 첫번째 원소값 반환
cout<<v.at(0)<<endl;
cout<<v.front()<<endl; //맨 앞에 값 반환
cout<<v.back()<<endl; //맨 마지막 값 반환
cout<<v.size()<<endl; //크기 반환
cout<<v.capacity()<<endl; //용량 반환
if(v.empty()) // 비었있지는 여부 확인
{
cout<<"비어 있음 "<<endl;
}
else {
cout<<"채워져 있음"<<endl;
}
vector<int> :: iterator iter=v.begin(); // 반복자 생성
for(iter=v.begin();iter!=v.end();iter++)
{
cout<<*iter<<' ';
}
cout<<endl;
iter=v.begin();
iter++;
v.insert(iter,4,123); //iter가 가르치는 곳에 123원소를 4개 삽입
for(iter=v.begin();iter!=v.end();iter++)
{
cout<<*iter<<' ';
}
iter=v.begin();
v.erase(iter); //iter가 가르치는 원소 삭제
cout<<endl;
for(iter=v.begin();iter!=v.end();iter++)
{
cout<<*iter<<' ';
}
return 0;
}
|
cs |
<c++코드 deque>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include<iostream>
#include<deque>
#include<vector>
using namespace std;
int main(void)
{
deque<int> dq(10,2);
deque<int> ::iterator iter;
for(iter=dq.begin();iter!=dq.end();iter++)
{
cout<<*iter<<' ';
}
cout<<endl;
dq.push_back(123);
dq.push_front(1);
for(iter=dq.begin();iter!=dq.end();iter++)
{
cout<<*iter<<' ';
}
return 0;
}
|
cs |
<결과 화면>