|
发表于 2020-10-10 16:54:26
|
显示全部楼层
本帖最后由 xieglt 于 2020-10-10 17:01 编辑
vector容器的大小是不定长的。
- #include <stdio.h>
- #include <vector>
- #include <iostream.h>
- int main(void)
- {
- //定义一个一维数组
- std::vector<double> array_1D;
- //定义一个二位数组
- std::vector<std::vector <double> > array_2D;
-
- //给一维数组中添加10个元素
- for(int i = 0 ; i < 10 ; i ++)
- {
- array_1D.push_back(i);
- }
-
- //给二维数组中添加一个一维数组
- array_2D.push_back(array_1D);
- for(i = 0 ; i < 10 ; i ++)
- {
- array_1D[i] = i * i;
- }
- //给二维数组中再添加一个一维数组
- array_2D.push_back(array_1D);
-
- //以下标方式访问二维数组,将数组中的每个元素输出
- for(i = 0 ; i < 2 ; i ++)
- {
- for(int j = 0 ; j < 10 ; j ++)
- {
- cout << array_2D[i][j] << ",";
- }
- cout << endl;
- }
-
- //清空一维数组
- array_1D.clear();
- //给一维数组中添加11个元素
- for(i = 0 ; i <= 10 ; i++)
- {
- array_1D.push_back(i * i * i);
- }
-
- //给二维数组中再添加一个一维数组
- array_2D.push_back(array_1D);
-
- //因为一维数组的长度不一致,用下标方式访问不方便,可以用指针方式访问数组
- typedef std::vector<std::vector <double> >::iterator VVI;
- typedef std::vector<double>::iterator VI;
- for(VVI vvi = array_2D.begin() ; vvi != array_2D.end() ; vvi ++)
- {
- for(VI vi = vvi->begin() ; vi != vvi->end() ; vi ++)
- {
- cout << * vi << ",";
- }
- cout << endl;
- }
- return 0;
- }
复制代码
可以在定义时指定长度,但它依然可以变长
- //定义一个已经包含10个元素的一维数组,并把每一个元素初始化为1.0
- std::vector<double> array_1D(10,1.0);
- //定义一个包含5个元素的二维数组。
- std::vector<std::vector <double> > array_2D(5);
复制代码 |
|