c++中的Double Vector问题

Double Vector issue in c++

本文关键字:问题 Vector Double 中的 c++      更新时间:2023-10-16

所以我想基本上制作一个双数组,但通过向量使其动态。然而,我想我并没有完全理解这一点,因为我做错了什么,导致我的向量下标超出了范围。下面是我的代码:

std::vector<std::vector<std::string>> m_menuList;
m_menuList[0].push_back(menuType);
m_menuList[0].push_back(location);

这可能是一个愚蠢的错误或完全错误的东西,它确实编译正确,只是总是崩溃。

谢谢!

我们倾向于称之为"双矢量"2D矢量一个"三重向量"将是一个三维向量,依此类推……所有这些向量都可以称为多维向量

您的问题是外部向量是空的,因此没有m_menuList[0]。你可以改为:

m_menuList.push_back(std::vector<std::string>(1, menuType));

这将把仅由CCD_ 2组成的向量推到CCD_。

您也可以用一定数量的空向量启动m_menuList,这样您当前的代码就可以工作(假设您有一些整数n):

std::vector<std::vector<std::string>> m_menuList(n);

初始化后,在使用索引访问向量之前,必须先resize()向量。

std::vector<std::vector<std::string>> m_menuList;
m_menuList.resize(1);

但是,当您插入不需要索引的对象时,可以执行以下操作:

m_menuList.push_back(menuType);
m_menuList.push_back(location);
OR
std::vector<std::vector<std::string>> m_menuList;
m_menuList.push_back(menuType);
m_menuList.push_back(location);