<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 >,初始化包含 m 个 vector < int > 对象,每个对象都是一个新创立的 vector < int > 对象的拷贝,而这个新创立的 vector < int > 对象被初始化为包含 n 个 0。
vector< int >(n):表示构造一个无名且含n个0的vector< int >对象。
方法一:
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;}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
