vector<vector<int> >二维容器编程

#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
template<typename T>
void show(const vector<vector<T> > &ivvec); //输出vector<vector<int> >的内容

int main(void)
{
 vector<vector<int> >ivvec;  //5行10列
 for(int i=0;i<5;++i)
 {
  vector<int>ivec;   //创建一个临时的vector<int>,用来存储二维vector的行数据
  for(int j=0;j<10;++j)
  {
   ivec.push_back(j);   
  }
  ivvec.push_back(ivec);  //添加vector<int>(添加行数据)  
  ivec.clear();          //删除ivec数据
 }
 cout<<ivvec.size()<<endl;  //输出5
 show(ivvec);
 return EXIT_SUCCESS;
 
}

template<typename T>
void show(const vector<vector<T> > &ivvec) 
{
 for(std::vector<vector<T> >::const_iterator iter=ivvec.begin();iter!=ivvec.end();++iter)  //一定要加上std::
 {
  for(std::vector<T>::const_iterator it=iter->begin();it!=iter->end();++it)   ////一定要加上std::
  {
   cout<<*it<<"  ";
  }
  cout<<endl;
 }

    //也可以如下这样写
/* for(int i=0;i<ivvec.size();++i)
 {
  //vector<int> ivec = ivvec[i];
  for(int j=0;j<ivvec[i].size();++j)
  {
   cout<<ivvec[i][j]<<" ";
  }
  cout<<endl;
 }*/
}
时间: 2024-08-04 07:43:14

vector<vector<int> >二维容器编程的相关文章

转:用STL中的vector动态开辟二维数组

用STL中的vector动态开辟二维数组 源代码:#include <iostream>#include <vector>using namespace std;int main(){ int m, //行数     n; //列数 cout << "input value for m,n:"; cin>>m>>n;  //注意下面这一行:vector<int后两个">"之间要有空格!否则会被认

4.4.1 二维复合矩阵编程实例

(a)变换前的三角形                 (b)变换后的三角形          (c)程序显示结果 #include <GL/glut.h> #include <stdlib.h> #include <math.h> /* 初始化显示窗口大小 */ GLsizei winWidth=600,winHeight=600; /* 设置世界坐标系的显示范围 */ GLfloat xwcMin=0.0,xwcMax=225.0; GLfloat ywcMin=0.

用vector代替实现二维数组

vector可以用来模拟数组,当然也可以用来模拟二维数组: 定义如:vector<int>a[100];   相当于定义了一个100行的数组,当每行的大小是不确定的 模板应用如下: #include <stdio.h> #include <vector> #include <algorithm> using namespace std; int main() { vector<int>a[100]; vector<int>::iter

251. Flatten 2D Vector 平铺二维矩阵

[抄题]: Implement an iterator to flatten a 2d vector. Example: Input: 2d vector = [ [1,2], [3], [4,5,6] ] Output: [1,2,3,4,5,6] Explanation: By calling next repeatedly until hasNext returns false,   the order of elements returned by next should be: [1,

C++中动态申请二维数组并释放方法

C/C++中动态开辟一维.二维数组是非常常用的,以前没记住,做题时怎么也想不起来,现在好好整理一下. C++中有三种方法来动态申请多维数组 (1)C中的malloc/free (2)C++中的new/delete (3)STL容器中的vector 下面逐一介绍: 第一种:malloc/free 1.动态开辟一维数组 [cpp] view plaincopy //动态开辟一维数组 void dynamicCreate1Array() { int m; int i; int *p; printf("

C++中vecotr表示二维数组并自己实现一个Grid类

1 C++中使用vector来表示二维数组 声明一个二维数组: vector<vector<int>> dp(row, vector<int>(col)); 将变量dp初始化为一个含有row个元素的vector对象,其中每个元素又都是含有col个元素的vector对象.内部的vector对象的基类型为int,外部vector对象的基类型为 vector< int >. 获取数组的row和col vector<vector<int>>&

资瓷区间修改+区间求和的树状数组(一维/二维)

一维:令 \(v_i\) 为差分数组,那么 \([0, k]\) 的前缀和就是 \(\sum{v_i(k+1-i)} = (k+1) \cdot \sum{v_i} + \sum{v_i \cdot (-i)}\),树状数组维护一下 \(v_i\) 和 \(v_i \cdot i\) 即可. template <typename I> struct Fenwick { struct Node { I v0, v1; void add(I d0, I d1) { v0 += d0; v1 +=

第二次作业: 二维数组

高级语言程序设计报告   实习题目 第二次作业: 二维数组 P228计算机双学位第8章实验题:学生成绩管理系统 l 在上次作业的基础上,改为每学生2门课,用二维数组编程实现相应功能,相应功能所有涉及分数的均需可以处理每门课程分数及每个学生课程总分. l 涉及到排序的,均需提供冒泡及选择两种排序方法,可增加菜单项. l 功能5中按学号查询学生排名及成绩,要求用折半法,为此你的学生数据可以多一点. l 数组中可以事先有数据(省却每次输入数据浪费时间),为此输入数据菜单可以改造为增加数据菜单. l 在

二维数组和它的指针

这片文章介绍二维数组int a[ i ] [ j ]中的符号:a,&a[ i ],&a[ i ][ j ],a[ i ][ j ],&a[ i ] [ j ]的含义,重点在后面第二部分的分析,但是前面第一部分的复习数组指针,指针数组和二维指针是前提,前面的不会,后面的没法理解.这片文章写的有些费劲,个人能力不够,可能会有错误,希望各位朋友能够指正,共同进步.//握手 一:先回顾一下数组指针,指针数组,二维指针 先根据逐层分析分方法分析下面的代码 (1)int (*p)[5]; (2