用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>::iterator it;

	int i, j;
	int d[5]={1, 2, 3, 4, 5};

	for(j=0; j<50; j++)
	{
	for(i=0; i<5; i++)
	{
        a[j].push_back(d[i]);
	}
    }
	for(i=0; i<50; i++)
	{
		for(it=a[i].begin(); it!=a[i].end(); it++)
		{
			printf("%d ", *it );
		}
		printf("\n");
	}

	return 0;
}
时间: 2024-10-12 03:31:13

用vector代替实现二维数组的相关文章

转:用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后两个">"之间要有空格!否则会被认

vector&lt; vector&lt;int&gt; &gt;类似于二维数组

1 vector< vector<int> > intVV; 2 vector<int> intV; 3 int i,j; 4 for(i=0;i<10;++i){ 5 intV.clear(); 6 for(j=0;j<10;++j) 7 intV.push_back(i*10+j); 8 intVV.push_back(intV); 9 } 10 11 for(i=0;i<10;++i){ 12 for(j=0;j<10;++j) 13 co

C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件

阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: 1 /*读取txt文件到二维数组*/ 2 #include <iostream> 3 #include <fstream> 4 #include <vector> 5 #include <string> 6 7 using namespace std; 8 9 typedef vector< vector<int> > D2array; //二维数组 10 typed

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>>&

C++ 二维数组

普通二维数组 : 类名 标识符[int][int].如 int a[5][5]; 用vector实现二维数组的方法: vector<vector<类名>  > 标识符: vector<vector<类名>  > 标识符(int a ,vector<类名>(int b)); #ifndef __GA_H#include<vector>#include"City.h"#endif // !1#define __GA_H

C++ vector二维数组

C++ 构建二维动态数组 int **p; p = new int*[10]; //注意,int*[10]表示一个有10个元素的指针数组 for (int i = 0; i < 10; ++i) { p[i] = new int[5]; } 这样就构成10*5的数组 vector二维数组 int i,j; vector<vector<int>> array(5); for (i = 0; i < array.size(); i++) array[i].resize(3)

vector动态二维数组(容器的容器)占用内存分析

之前在这里写过一篇"C++中的动态二维数组".在C++中没有动态二维(多维)数组.但是根据原理我们可以自己创建. 在看过STL的vector源代码后"<STL源码剖析>---stl_vector.h阅读笔记"后,想到可以用容器的容器来做二维数组. 创建一个2x4的二维数组.想到的办法是:先创建一个容器的容器,外层大小的2(2行),然后里面容器小大为4(4列). int row=2,col=4; vector<vector<int> &g

使用vector二维数组

用vector二维数组写一个电话薄 代码如下: #include <iostream> #include <fstream> #include <string> #include <vector> #include <cctype> int main(int argc, char *argv[]) { using namespace std; string file_name = "F:\\Code\\C++\\C++ Primer 5