<C++>:vector容器

前言

东方欲晓,莫道君行早。
踏遍青山人未老,风景这边独好。


一、一维 vector

  • 创建一维 vector
vector<int> nums;		//不指定长度
vector<int> nums(n);	//指定长度为n
  • 添加元素:
nums.push_back(1);		//直接从数组末端添加一个元素
nums[i] = 1;			//直接将nums的第i个位置赋值为1
  • 数组遍历:
for(int i=0; i<nums.size(); i++)
{
    
    
	cout << nums[i] << endl;
}
  • 获得长度:nums.size();
  • 排序(O(n log n)):sort(nums.begin(),nums.end());
  • 翻转:reverse(nums.begin(),nums.end());
  • 合并两个 vector :合并 nums1 和 nums2,并将合并后的数组赋值给 nums:
vector<int> nums1(m),nums2(n);
vector<int> nums;
nums.resize(m+n);
merge( nums1.begin(), nums1.end(), nums2.begin(), nums2.end(), nums);

二、二维 vector

  • 创建 m*n 的二维 vector :(直接定义)
vector<vector <int> > nums(m ,vector<int>(n));    //m*n的二维vector

解释: 定义了一个 vector 的容器,元素类型为 vector< int >,初始化包含 mvector < int > 对象,每个对象都是一个新创立的 vector < int > 对象的拷贝,而这个新创立的 vector < int > 对象被初始化为包含 n0

  • vector< int >(n):表示构造一个无名且含 n0vector< int > 对象。

  • 动态创建 m*n 的二维数组 vector

方法一:

vector<vector <int> > nums;
nums.resize(m);
for(int i=0; i<m; i++)
{
    
    
	nums[i].resize(n);
} 

方法二:

vector<vector <int> >nums;
nums.resize(m, vector<int>(n));

初始化二维数组:

//初始化一个:m*n的二维vector,所有元素为0
vector<vector <int> > nums(m ,vector<int>(n, 0));	
  • 获得二维数组的行数:nums.size();
  • 获得二维数组的列数:nums[0].size();

  • 数组遍历

int m = nums.size(), n = nums[0].size();
for(int i = 0; i < m; i++)
{
    
    
	for(int j = 0; j < n; j++)
	{
    
    
		cout << nums[i][j] << endl;
	}
}

猜你喜欢

转载自blog.csdn.net/WandZ123/article/details/124992674