vector<vector<자료형>> 변수명;
vector<vector<int>> v;
vector<int> tmp;
tmp.push_back(1);
tmp.push_back(2);
v.push_back(tmp);
cout<<v.at(0).at(0); //1출력
cout<<v[0][1]; //2출력
vector<vector<int>> v;
: 벡터를 선언할 때 자료형을 벡터로 선언하면 벡터 자료형을 담을 수 있는 벡터 자료형으로 사용할 수 있음
vector<int> tmp; v.push_back(tmp);
: 벡터에 자료를 넣을 때는 1차원 벡터를 선언해서 값을 저장한 뒤 2차원 벡터에 삽입할 수 있다.
cout<<v.at(0).at(0);
: 2차원 배열의 첫번째 원소에 접근한다. 값을 push_back한 이후에 접근할 수 있다.
cout<<v[0][0];
: 배열과 같이 인덱스로 접근할 수 있다.
vector<vector<int>> n(n,vector<int>(m));
: N*M만큼 2차원 벡터 공간만 확보 vector<vector<int>> n(n,vector<int>(m,0));
: N*M만큼 2차원 벡터 0으로 값 초기화 #include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,cnt=1;
cin>>n>>m;
vector<vector<int>> v(n,vector<int>(m));
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
v[i][j]=cnt++;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<v[i][j]<<" ";
}
cout<<'\n';
}
}
pair<int,int> p;
: int,int형 pair p를 선언함함수명 | 기능 | 예시 |
---|---|---|
first | pair의 첫번째 인자 반환 | cout<<p.first; |
second | pair의 두번째 인자 반환 | cout<<p.second; |
make_pair(value1,value2) | value1, value2를 쌍으로 하는 값을 생성 | pair<int,int> p; p = make_pair(10,20); |
vector<pair<int,int>> v;
: pair를 원소로 가진 벡터 선언#include<bits/stdc++.h>
using namespace std;
int main(){
vector<pair<int,int>> v1;
vector<pair<int,int>> v2;
int n;
cin>>n;
vector<pair<int,int>> v3(n);
for(int i=0;i<n;i++){
int t1,t2;
cin>>t1>>t2;
v1.push_back(make_pair(t1,t2)); //첫번째 방법
v2.push_back({t1,t2}); //두번째 방법
v3[i]={t1,t2}; //세번째 방법
}
for(int i=0;i<n;i++){
//모두다 같은 값을 출력한다.
cout<<v1[i].first<<" "<<v1[i].second<<'\n';
cout<<v2[i].first<<" "<<v2[i].second<<'\n';
cout<<v3[i].first<<" "<<v3[i].second<<'\n';
}
}