1. STL vector
: index를 기반으로 한 자료구조이며 배열과 달리 최대 크기가 지정되어있지 않음.
장점
단점
#include <vector>
vector.size() : vector 크기 반환
vector.resize(s) : vector크기를 s로 바꿔줌
vector.empty() : vector가 비었는지 아닌지 확인
vector.begin() : 맨 앞의 iterator 반환
vector.end() : 맨 뒤의 iterator 반환
vector.front() : 맨 앞의 값 반환
vector.back() : 맨 뒤의 값 반환
vector.push_back(d) : 맨 뒤에 d라는 값을 추가
vector.pop_back() : 맨 뒤의 값 제거
vector.clear() : 모든 원소 제거
1) 벡터 합치기
5) 순서 뒤바꾸기
++
위에서 설명했듯이 sort는 <algorithm>에 존재한다. 사용법은 배열을 예로 들어서
벡터도 sort가 가능하다.
: index를 기반으로 한 자료구조이며 배열과 달리 최대 크기가 지정되어있지 않음.
장점
- 적은 양의 데이터 처리에 좋음
- 가변적인 길이를 가짐
- index 기반
단점
- 중간에 삽입 및 삭제가 불가능
- 데이터를 찾으려면 배열과 같이 처음부터 전부 검색해봐야 함
- 많은 양의 데이터 처리에 불리
#include <vector>
vector.size() : vector 크기 반환
vector.resize(s) : vector크기를 s로 바꿔줌
vector.empty() : vector가 비었는지 아닌지 확인
vector.begin() : 맨 앞의 iterator 반환
vector.end() : 맨 뒤의 iterator 반환
vector.front() : 맨 앞의 값 반환
vector.back() : 맨 뒤의 값 반환
vector.push_back(d) : 맨 뒤에 d라는 값을 추가
vector.pop_back() : 맨 뒤의 값 제거
vector.clear() : 모든 원소 제거
1) 벡터 합치기
vector<int> A, B, AB;
AB.reserve(A.size() + B.size());
AB.insert(AB.end(), A.begin(), A.end());
2) 벡터 붙이기
vector<int> A, B;
A.reserve(A.size() + B.size());
A.insert(a.end(), B.begin(), B.end());
3) 특정 값 제거
#include <algorithm>
vector<int> A;
A.erase(remove_if(A.begin(), A.end(), CoditionalFunction), A.end());
4) 중복 값 제거
#include <algorithm>
vector<int> A;
sort(A.begin(), A.end());
A.erase(unique(A.begin(), A.end()), A.end());
A를 정렬하지 않고 unique를 하면 아무런 변화가 없다. 즉, sort를 해서 중복값들을 모아주고 unique로 중복값들을 뒤로 보내주고, erase로 뒤로 보내준 중복된 쓰레기값을 다 지워주는 식이다. 참고로 sort도 algorithm에 있다.5) 순서 뒤바꾸기
vector<int> A;
reverse(A.begin(), A.end());
++
위에서 설명했듯이 sort는 <algorithm>에 존재한다. 사용법은 배열을 예로 들어서
#include <algorithm>
int Buffer[10];
sort(Buffer, Buffer + 10);
벡터도 sort가 가능하다.
vector<int> v;
sort(v.begin(), v.end());
댓글
댓글 쓰기