所以我基本上想制作一个双数组,但通过 vector 使其动态化。但是我想我不完全理解这一点,因为我做错了什么导致我的 vector 下标超出范围。下面是我的代码:
std::vector<std::vector<std::string>> m_menuList;
m_menuList[0].push_back(menuType);
m_menuList[0].push_back(location);
这可能是一个愚蠢的错误或完全错误的东西,它编译正确,只是总是崩溃。
谢谢!
最佳答案
我们倾向于将“双 vector ”称为2D vector 。然后“三 vector ”将是 3D vector 等等...它们中的全部都可以称为多维 vector 。
您的问题是外部 vector 为空,因此没有 m_menuList[0]
。你可以改为:
m_menuList.push_back(std::vector<std::string>(1, menuType));
这会将一个仅由 menuType
组成的 vector 推到 m_menuList
的后面。
您还可以使用一定数量的空 vector 启动 m_menuList
,这样您当前的代码就可以工作(假设您有一些整数 n):
std::vector<std::vector<std::string>> m_menuList(n);
关于c++ - C++中的双 vector 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080770/