c++ - 如何在 C++ 中创建 vector 的 vector 映射?

标签 c++ dictionary vector

我正在尝试制作包含 vector 的 map ,但在尝试访问元素时出现错误。

这是我的代码:

#include <iostream>
#include <map>
#include <vector>
#include <string>

using namespace std;

int main()
{
    map<int, vector<vector<string>>> m;
    m[0][0].push_back("hi");
    return 0;
}

您可以在这里尝试:https://onlinegdb.com/HytLmjQJV

我遇到的错误是在 Visual Studio 中:

Debug assertion failed.Program : Expression:vector subscript out of range.

最佳答案

m[0] 在您的代码中是一个空 vector ,因此您无法访问它的第一个元素 (m[0][0])。 您需要在内部创建一个 vector ,例如

m[0].push_back({});
m[0][0].push_back("hi");

关于c++ - 如何在 C++ 中创建 vector 的 vector 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607166/

相关文章:

c++ - 标识符和宏有什么区别?

c++ - 继承模板赋值运算符

使用 vector::push_back() 方法时,C++ vector 编译错误

C++ : alternative for Vector of references to avoid copying large data

c++ - 如何使用 C++ 在抽象语法树中实现 if-else 分支

c++ - 我怎样才能延迟Qt中的进程

c++ - STL映射插入拷贝构造函数

python - 列表理解中的问题以获得计数

dictionary - Groovy:在 map 列表中按键查找/返回 map 的值

c++ - 如何在 O(n) 中获得数组的平衡索引?