C++ vector(用vector定义二维数组组(初学者))(高悬赏)

利用c++中的vector创建动态二维数组_百度知道
利用c++中的vector创建动态二维数组
我的要求是在循环中可以改变数组的大小,比如一维时:
vector&int& myV
for(vector&int&::size_type i = 0; i & 6 ;i++)
myVector.push_back(i);
if(i == 5)
myVector.push_back(i);
如何把这个程序扩展...
&&&&vector为C++中的一个容器类,其功能相当于动态数组。使用vector需要包含头文件vector。&&&&vector的常用操作:1. v.push_back(t)&&& 在容器的最后添加一个值为t的数据,容器的size变大。&&&&另外list有push_front()函数,在前端插入,后面的元素下标依次增大。2. v.size()&&&&&&& 返回容器中数据的个数,size返回相应vector类定义的size_type的值。3. v.empty()&&&& 判断vector是否为空4. v[n]&&&&&&&&&& 返回v中位置为n的元素5. v.insert(pointer,number, content)&&& 向v中pointer指向的位置插入number个content的内容。6. v.pop_back()&&& 删除容器的末元素,并不返回该元素。7.v.erase(pointer1,pointer2) 删除pointer1到pointer2中间(包括pointer1所指)的元素。8. v1==v2&&&&&&&&& 判断v1与v2是否相等。9. !=、&、&=、&、&=&&&&& 保持这些操作符惯有含义。10. vector&typeName&::iterator p=v1.begin( ); p初始值指向v1的第一个元素。*p取所指向元素的值。11.&& p=v1.end( ); p指向v1的最后一个元素的下一位置。12.v.clear()&&&&& 删除容器中的所有元素。12.v.clear()&&&&& 删除容器中的所有元素。&&&&若要用vector实现二维动态数组,可用vector作模板类型参数:vector&vector&int&&&&
采纳率:55%
来自团队:
for(int j=0.push_back (vec);int& &gt.clear (); } cout&ltvector&vector&int&gt.size ()&&endl?没试过;4;
vec,不知道行不行 #include&iostream&#include&vector&int main(){
vector&int&
vector&v_i++)
cin&&x;vec.push_back (x);
v_j&3;j++) {
for(int i=0;i&v_
return 0;}貌似可以,但是我不知道怎么访问; &这样扩展行吧
本回答被提问者采纳
为您推荐:
其他类似问题
二维数组的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。12085人阅读
在STL中Vector这一容器,无论是在封装程度还是内存管理等方面都由于传统C++中的数组。本文主要是关于使用Vector初始化、遍历方面的内容。其他二维的思想也是类似的。
这里简单叙述一下C++ 构建二维动态数组
p = new int*[10];
for (int i = 0; i & 10; ++i)
p[i] = new int[5];
(1)利用Vector的push_back函数
vector&vector&int&&
vector&int&
a.push_back(1);
a.push_back(2);
a.push_back(3);
vector&int&
b.push_back(4);
b.push_back(5);
b.push_back(6);
vec.push_back(a);
vec.push_back(b);
(2)先定义好二维数组结构,在直接赋值
vector&vector&int&& array(5);
for (i = 0; i & array.size(); i++)
array[i].resize(3);
for(i = 0; i & array.size(); i++)
for (j = 0; j & array[0].size();j++)
array[i][j] = (i+1)*(j+1);
(1)利用迭代器
void reverse_with_iterator(vector&vector&int&& vec)
if (vec.empty())
cout && "The vector is empty!" &&
vector&int&::
vector&vector&int&&::
vector&int& vec_
cout && "Use iterator : " &&
for(iter = vec.begin(); iter != vec.end(); iter++)
vec_tmp = *
for(it = vec_tmp.begin(); it != vec_tmp.end(); it++)
cout && *it && " ";
(2)得到行、列大小,利用下标进行遍历
void reverse_with_index(vector&vector&int&& vec)
if (vec.empty())
cout && "The vector is empty!" &&
cout && "Use index : " &&
for (i = 0; i & vec.size(); i++)
for(j = 0; j & vec[0].size(); j++)
cout && vec[i][j] && " ";
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:485991次
积分:4376
积分:4376
排名:第7954名
原创:70篇
转载:10篇
评论:169条
机器学习、数据挖掘爱好者
阿里妈妈算法工程师
期待认识志同道合的你
文章:13篇
阅读:182722C++ vector(二维数组(初学者))(高悬赏)_百度知道
C++ vector(二维数组(初学者))(高悬赏)
各位前辈。程序我能独立的敲出来。但是我不太清楚这个数组里面的存储结构是什么样的。
为什么我按照输出普通二维数组的输出方法 输出的是一个旋转的矩阵?
int main()
vector & vector&int& &
vector &int& v1;
int i,j,m;
for(i=0;i&=...
我有更好的答案
&&&&cout&&&&&&Size:&&&a.size()&&&&&nbsp,相当于按列的顺序插入&&&&&&&&&&输出a[0][0];a[i][j]&&&&&;&&&&&for(j=0;&&&&&&&&&&&&&&&&&=3;j++)&&&&&&&&{&&//&&&nbspint&}&&&&}&//&{&&&&&&&&for(j=0;j&&&&&&&&&&&&&&&&&&&&&&i&=3;&&nbsp,a[0][1]a[0][2],a[0][3]&&&a;&&&&&&&&&&nbsp.push_back(m);&//&a的第i个元素插入一个量&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&就是每个v1插入一个量&&a是向量类型的向量&&&&vector&&int&&&for(i=0;&&&&//&&&&nbsp,a[2]插入,a[3]插入&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&如此循环四次;&&&&&&nbsp,a[1][1]a[1][2],a[1][3]&&&&{&&&&&&&&for(i=0;i&&&&int&i,j,m;&&&&for(i=0;i&&&&nbsp.push_back(v1);=3;i++)&&&&&&&&{&&&&&i++)&v1;&//&v1是int类型的向量&&&&&&&&&&&&cout&&&//&输出一行就换行&&&&}&&&&return&0;};&&&&a[0]插入,a[1]插入;&&&&j&=3;&&&&cout&&&&&&&每个元素是v1&&&&}&&cin&&m;&&&&&&&&&&&&a[i];&&&&&如此第一个索引值循环4次,相当于按行的顺序输出&&&&&&&&&}&a;&=3;i++)&//&a有4个元素&&&&{&&&&&&&&&&&j++)&&//&&&&输出a[1][0];&//&//&&&&&&main(){&vector&&&vector&int&gt
采纳率:70%
& 应为&& cout&lt实现的区别就是普通数组 和 vector 的区别,vector内部也是有个普通数组存储数据、&a[j][i]&&& & cout&&a[i][j]& &;但是从下标使用来说的话;"旋转输出的原因是&nbsp,没什么差别,但多了些其他信息比如 capacity
为您推荐:
其他类似问题
二维数组的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。怎么输出vector&vector&
#include &iostream& #include&string&#include&vector& int main(){
vector&string&
vector&vector&string& &
while(cin && word && word != "a")
text.push_back(word);
textt.push_back(text);
for(int j = 0; j != ++j)
cout && text[j] &&
for(int j = 0; j & text.size(); ++j)
for(int n=0; n & textt[j].size(); n++)
cout && textt[j][n] &&}
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
我在VC6.0和VS2008下运行了你的程序发现:1、如果在VC6.0下运行,则会出现两个错误:a、j的重定义,把第2个j改为m即可;b、在这个语句:【vector&vector&string&&】中,需要改为:【vector& vector&string& &】即在外围的&&中加入两个空格,第2个vector之前和第1个&之后各加入一个空格,方便&&的匹配。
2、在VS2008下是可以正常运行的。
for(int n=0;n&textt.size();n++)
for(int j=0;j&textt[n].size();++j)
cout&&textt[n][j]&&
textt中的元素是text的copy,依次遍历textt[n][j]才行
vector&vector& 相当于是二维数组,用两重循环来输出
for(int i = 0; i & textt.size(); ++i)
for(int j = 0; j & textt[j].size(); ++j)
cout&&textt[i][j]&&
用迭代器for(vector&string&::iterator i=items.begin(); i!=items.end(); i++)
不是您所需,查看更多相关问题与答案
vector::iterator.,
vector 释放内存,
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (9926) 次C++如何利用vector实现输入不定长数组_百度知道
C++如何利用vector实现输入不定长数组
比如输入的可能是1,2,3。也可能是1,2,3,4等等不定长的数组,如何存入vector中
我有更好的答案
int&for (int i = 0用push_back函数,来一个push_back一个。例如;&gt:vector& i & 10; ++i) {
那你的程序也就只能放10个?我要的可不是这个效果噢
那你把10 改成一个变量就可以了,多长都可以push_back
采纳率:66%
手动输入,回车结束
为您推荐:
其他类似问题
vector的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 用vector定义二维数组 的文章

 

随机推荐