vector实现二维数组
来源:互联网 发布:yii 框架商城源码下载 编辑:程序博客网 时间:2024/05/17 01:15
剑指offer第一个题就是二维数组的查找,天真地想用二维数组做,结果点开人家的在线编程,给的是vector。[尴尬......]
用vector实现二维数组的好处:
1、数组的越界可能会引起程序的崩溃,动态性不好,包括动态改变大小,动态申请。
2、vector提供了operator[]函数,可以像数组一样的操作,而且还有边界检查,动态改变大小。
简单说下C++构建动态的二维数组:
int **p;p = new int*[10]; //注意,int*[10]表示一个有10个元素的指针数组for (int i = 0; i < 10; ++i){ p[i] = new int[5];}
用vector实现二维数组:
一、定义一个二维数组并初始化:
vector<vector<int> > array(m); //这个m一定不能少//初始化一个m*n的二维数组for(int i=0;i<m;i++)
{ array[i].resize(n);}二、下面的代码将实现:
产生二维数组,
给二维数组赋值,
扩大原有的二维数组,
数组下标进行访问,
迭代器进行访问。
#include<vector>#include<iostream>using namespace std;int main(){vector<int> vc;vc.push_back(1);vc.push_back(2);vc.push_back(3);int count = 0;////////////////二维数组////////////////////////////////vector<vector<int>> sz(3);for(int i=0;i<3;i++)sz[i].resize(4);//创建了一个3*4的二维数组//(利用下标)类似二维数组//////////////////////for(int i=0;i<3;++i)for(int j=0;j<4;++j)sz[i][j] = ++count;for(int i=0;i<3;++i){for(int j=0;j<4;++j) {cout<<sz[i][j]<<" ";}cout<<endl;}cout<<endl;//动态扩大了二位数字的大小////////////////////////////////////////////////这是在原有的基础上再开的并不会把之前的清空////////sz.resize(5);//重新设置了大小为5//////////////////////////////////////////////////////////////sz[3].resize(4);sz[4].resize(4);//这两句相当于是初始化新开的两个空间。////////////这两句不写的话代码会出现内存错误,并崩溃掉////////for(int i=0;i<5;++i){for(int j=0;j<4;++j) {cout<<sz[i][j]<<" ";}cout<<endl;}//(利用迭代器)类似指针/////////////////////////////////////////vector<int>::iterator it;//===========>相当于列vector<vector<int>>::iterator iter;//=>相当于行vector<int> vec_tmp;cout<<"Use iterator:"<<endl;for(iter = sz.begin();iter != sz.end();iter++){vec_tmp = *iter;for(it = vec_tmp.begin();it!=vec_tmp.end();it++)cout<<*it<<" ";cout<<endl;}}
0 0
- Vector二维数组实现
- vector 实现二维数组
- vector实现二维数组
- 使用Vector实现二维数组
- vector实现动态二维数组
- 使用Vector实现二维数组
- C++ vector 实现二维数组
- 使用Vector实现二维数组
- 二维数组和vector实现dijkstra
- vector 数组 二维数组
- vector动态二维数组
- vector 二维数组示例
- vector 二维数组 初始化
- vector动态二维数组
- vector开辟二维数组
- vector代替二维数组
- vector动态二维数组
- vector二维数组使用
- Android自定义控件(二)View的绘制
- unity 项目实践经验 和 架构体系
- mongodb忘记admin密码操作
- Java进阶03-final关键字
- 算法导论 练习题 4.2-6
- vector实现二维数组
- SQL Server 2012降级至2008R2
- eclipse中Android SDK安装的问题
- bzoj1031: [JSOI2007]字符加密Cipher
- PHP学习笔记——PHP单路分支和双路分支,else if多项条件分支结构;
- Qt5.7 + VS2015 环境搭建
- UILabel 添加 UILabel 导致文本不可见
- Androidstudio集成ffmpeg
- sublime列编辑