C++中的双向量问题

Bry*_*yce 1 c++ vector

所以我希望基本上制作一个双数组,但它是动态的矢量.但是我想我不完全理解这一点,因为我做错了导致我的矢量下标超出范围.以下是我的代码:

std::vector<std::vector<std::string>> m_menuList;
m_menuList[0].push_back(menuType);
m_menuList[0].push_back(location);
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

sco*_*001 5

我们倾向于将"双向量"称为2D向量.然后,"三重矢量"将是3D矢量等等......它们中的很多都可以称为多维矢量.

你的问题是外部向量是空的,所以没有m_menuList[0].你可以这样做:

m_menuList.push_back(std::vector<std::string>(1, menuType));
Run Code Online (Sandbox Code Playgroud)

这将推动一个仅由menuType向后组成的向量m_menuList.

你也可以从m_menuList一定数量的空向量开始,这样你的当前代码就可以工作(假设你有一些整数n):

std::vector<std::vector<std::string>> m_menuList(n);
Run Code Online (Sandbox Code Playgroud)