c++ - 使用字符数组作为映射中的键

标签 c++ arrays dictionary stl

我正在尝试使用char[]作为 map :

#include<iostream>
#include<map>
#include<string>
#include<utility>
#include<list>

using namespace std;

int main(void)
{
    map<char[10],int> m;

    char c[10]={'1','2','3','4','5','6','7','8','9','0'};
    m[c]=78;
    return 0;
}

但是抛出一个错误:

error: array used as initializer

second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...)

即使这样也不起作用:m["abcdefghi"]=4;

如何使用char[]作为key?我有几个关于 SO 的问题,但它们没有多大帮助。

注意:我已经使用了string,但出于好奇我想尝试char[]

最佳答案

数组既没有复制构造函数,也没有复制赋值运算符。并且数组没有默认的运算符 <。

使用标准容器std::array代替数组。

例如

#include<iostream>
#include <array>
#include<map>

int main()
{
    std::map< std::array<char, 10>, int> m;

    std::array<char, 10> c = {'1','2','3','4','5','6','7','8','9','0'};
    m[c]=78;

    return 0;
}

关于c++ - 使用字符数组作为映射中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60136080/

相关文章:

c++ - const BYTE * 和 const LPBYTE

javascript - 如何在javascript中打乱一组对象?

arrays - 这个 SwiftUI 列表出了什么问题,没有显示正确的数据

python - 从具有重复键的字典列表中创建具有唯一键的字典列表

python - 在 django 模板中输出排序的 python 字典

c++ - 为什么 "case::LABEL:"在 g++ 中编译?

c# - 如何在 C# 和非托管 C++ 库之间传递对指针的引用?

C++:尝试在单个 for 循环中使用 getlline() 填充多个 vector 时, vector 下标超出范围

python - 在外部文件中保存 Python 字典?

c++ - 如何制作高效的C++跳转表?