#include <vector>
push_back, pop_back
#include <algorithm>
sort(v.begin(), v.end())
#include <algorithm>
sort(v.rbegin(), v.end())
bool cmp(pair<int, int> &a, pair<int int> &b){
if(a.first == b,first){
return a.second < b.second;
}
return a.first < b.first;
}
sort(v.begin(), v.end(), cmp);
false가 리턴될때 a, b의 순서를 바꾼다는 것을 기억하자. 즉, a.first < b.first
에서 false가 리턴될 경우 a와 b의 순서가 바뀐다. 결과적으로 오름차순 정렬이 된다.
백터가 pair들로 구성되어 있을 경우 첫번째 값이 같으면 두번째 값으로 오름차순 정렬을 한다.
vector<int> v(100)
위와 같이 하면 0이 100개 들어있는 vector로 초기화되어서 index로 바로 접근이 가능해진다.
하지만 이렇게 할 경우 정답을 출력할 때 단순히 auto i:v 나 v.size()까지 출력하면 100개가 출력된다.
따라서 사용된 부분만 출력하고 싶다면 idx를 따로 저장해두거나
for(auto i: v){
if(i != 0) cout << i << endl;
}
처럼 0일 경우에는 출력하지 않는 방식으로 해도 된다.
#include <vector>
#include <iostream>
using namespace std;
void func(vector<vector<int>> &v)
{
vector<int> tmp;
tmp.push_back(1234);
v.push_back(tmp);
}
int main()
{
vector<vector<int>> v;
func(v);
cout << v[0][0] << endl;
}
call by value로 인자를 넘기고 싶다면 &를 빼면 된다.