mfc c++ 初学,vector怎么最简单地使用二维数组vector<int,int> vec;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc c++ 初学,vector怎么最简单地使用二维数组vector<int,int> vec;相关的知识,希望对你有一定的参考价值。

vector一维数组很简单
vector<int> vec;
vec.push_back(121);
vec.push_back(121);
vec.push_back(121);
vec.push_back(121);
vec.push_back(126);
printf("%d", vec[4]);不用设置初始大小就可以使用了

但是如果是2维vector<int,int> vec;
这样怎么添加元素?谢谢
读取呢

1.不知道是不是你写错了,正确的二维数组是vector<vector<int> >vect[常量]。
2.个人觉得使用typedef表示方法好理解点,直接把vector<vector<int> >看作一个整数,如下:
typedef VEC vector<vector<int> >;

2.操作:VEC vec[常量]; vec[0].push_bac(1);跟一般类型的二维数组一样去操作。
参考技术A 如果第二维只是固定的两个int的话有两种办法。
1, 使用stl的pair
vector<pair<int, int>> vec;
2, 添加两个int成员的类, 注意这个类需要有定义或有默认定义的拷贝构造函数和赋值操作符
class point

//成员,根据情况设置public或者private
int x;
int y;
//成员函数及其它..
;
vector<point> vec;

如果第二维也是不固定的话使用
vector<vector<int>> vec;
参考技术B vector没有这种使用方法
你可以试试vector<vector<int>> vec;
参考技术C #include<iostream>
#include<vector>
using namespace std;
int main()

vector<vector<int> > vec;
int x;
vector<int> v;
for(int i=0;i<2;++i)

for(int j=0;j<2;++j)

cin>>x;
v.push_back(x);

vec.push_back(v);

return 0;
追问

你这样读不出来啊

追答

这样你就有一个vec[i][j]的数组了,怎么可能读不出来,你多看看vector基本用法

参考技术D typedef struct Array2D

int x;
int y;

vector<Array2D> vect;
----
Array2D array2d;
array2d.x=1;
array2d.y=2
vect.push_back(array2d);追问

怎么读这两个数阿

追答

vect[i].x

vect[i].y

本回答被提问者采纳

我安装vs2017时安装的c++没安mfc请问怎么单独添加这个组件

打开安装程序->修改 面板右侧 摘要->使用C++的桌面开发->MFC和ATL支持 参考技术A 工具-》获取工具和功能-》单个组件-》选择你少的组件就行了 参考技术B

文件->新建

这时已经打开了新建项目的窗口,然后

点击“打开Visual Studio安装程序”就会弹出一个框

重新选择“使用C++的桌面开发”

右边就会弹出

在里面找到“MFC和ATL支持”并选择

然后更新下载

下载完以后打开VS就有啦~

参考技术C 点击卸载重组追答

修复

找到安装包

重新添加

以上是关于mfc c++ 初学,vector怎么最简单地使用二维数组vector<int,int> vec;的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual C++ 6.0 MFC 中,CString 是不是可以像简单类型而不是类一样被安全地对待?

如何用C++6.0中的MFC 画图?最简单的线就可以

C++新手之详细介绍MFC

vc++ 中动态数组 ventor 的操作问题

怎么用C++中的MFC随便画一条直线?老师说修改一下代码就行了,在哪里修改?怎么修改啊?大神,求帮啊。

c++面向对象的主要体现是啥?