Vector의 생성자와 연산자

vector<int> v;
vector<int> v(5); //[0,0,0,0,0]
vector<int> v(5,2); //[2,2,2,2,2]
vector<int> v2(v1);

Vector의 멤버 함수

v.assign(5,2); //2의 값으로 5개 원소 할당

v.at(idx); //v[idx]
v[idx];

v.front(); 
v.back();
v.clear();

v.push_back(7);
v.pop_back();

v.begin();
v.end();
v.rbegin();
v.rend();

v.reserve(n);
v.resize(n); // 크기를 n으로 변경
v.resize(n,3); // 크기를 n으로 변경, 더 커진 경우 인자를 3으로 초기화

v.size(); // 원소의 갯수를 리턴
v.capacity(); 

v2.swap(v1);
v.insert(2,3,4); // 2번째 위치에 3개의 4를 삽입
v.insert(v1.end(),v2.begin(),v2.end()) //v1에 v2를 삽입
v.insert(2,3); // 2번째 위치에 3을 삽입

v.erase(iter);
v.empty();

Vector와 iterator

vector<int>::iterator iter;
for(iter = v.begin(); iter != v.end();iter++){
	cout<<*iter<<" ";
}

unique 함수

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	vector <int> v;
	v.push_back(1); v.push_back(1);
	v.push_back(2);
	v.push_back(3); v.push_back(3);
	v.push_back(4);
	v.push_back(5); v.push_back(5); v.push_back(5);
	v.push_back(6);

	cout << "***** 기존 벡터배열 원소 *****" << endl;
	for (const auto& n : v) cout << n << ' ';
	cout << endl;

	cout << "***** unique 함수 적용 *****" << endl;
	unique(v.begin(), v.end());
	for (const auto& n : v) cout << n << ' ';
	cout << endl;
	
	return 0;
}

201910101.png

erase 함수 이용하여 필요한 값만 남기기

v.erase(unique(v.begin(), v.end()), v.end());
//123456만 남음

MAX, MIN in vector

#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    vector<int> v;
    v.push_back(46);
    v.push_back(68);
    v.push_back(184);
    v.push_back(4);
    v.push_back(17);
    v.push_back(53);
    
    cout << "현재 vector : ";
    for (int i : v) cout << i << " ";
    cout << "\\n==============================\\n";

    int max = *max_element(v.begin(), v.end());
    cout << "가장 큰 수 : " << max << "\\n";
    
    int max_index = max_element(v.begin(), v.end()) - v.begin();
    cout << "가장 큰 수의 인덱스 : " << max_index;
    cout << "\\n==============================\\n";

    int min = *min_element(v.begin(), v.end());
    cout << "가장 작은 수 : " << min << "\\n";

    int min_index = min_element(v.begin(), v.end()) - v.begin();
    cout << "가장 작은 수의 인덱스 : " << min_index << "\\n\\n";

    return 0;
}