一维vector的定义及初始化
#include<stdio.h>
#include<vector>
#include<string>
#include<iostream>
using namespace std;
using std::vector;
void Print1Vector(vector<int> v)
{
for(int i=0;i<v.size();i++){
cout<<v[i]<<" ";
}
cout<<endl;
}
int main()
{
/*一维vector*/
//使用初始化列表进行vector的初始化
vector<string> v1={"a","bc","hello"};
vector<int> v2={1,2,3,4,5,6,7,8,9,0};
Print1Vector(v2);
vector<int> v3(v2); //用v2初始化v3
vector<int> v4(10,99);//10个重复的99
vector<int> v5(10);//10个元素,默认初始化为0
{
Print1Vector(v3);
Print1Vector(v4);
Print1Vector(v5);
}
//vector的push_back方法
vector <int> v6;
for(int i=0;i<100;i+=10) v6.push_back(i);
Print1Vector(v6);
return 0;
}
2维vector的定义及初始化
#include <iostream>
#include <vector>
#define M 3
#define N 4
using namespace std;
void Print2Vector(vector<vector<int>> v){
for(int i=0;i<v.size();i++){
for(int j=0;j<v[0].size();j++){
cout<<v[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
int row=10;
int col=10;
//初始化row * col二维动态数组,初始化值为0
vector<vector<int>> vec(row,vector<int>(col,0));
int size_row = vec.size(); //获取行数
int size_col = vec[0].size(); //获取列数
cout<<size_row<<" "<<size_col<<endl;
Print2Vector(vec);
//用一维vector初始化二维vector
vector<int> v0(5,1);//5个重复元素1
vector<vector<int>> v1(5,v0);
Print2Vector(v1);
//使用resize()初始化二维数组
vector<vector<int>> v2(4);//4行
for(int i=0;i<v2.size();i++){
v2[i].resize(4,2);
}
Print2Vector(v2);
//定义一个空的二维vector,并用一维vector做初始化
vector<vector<int>> v3;
for(int i=0;i<M;i++)
{
vector<int> v;
int default_value=3;
for(int j=0;j<N;j++){
v.push_back(default_value);
}
v3.push_back(v);
}
Print2Vector(v3);
//使用初始化列表
vector<vector<int>> v4 {
{ 1, 1, 1, 1 },
{ 1, 1, 1, 1 },
{ 1, 1, 1, 1 }
};
Print2Vector(v4);
return 0;
}