gpt4 book ai didi

c++ - 如何将键但没有值插入 std::unordered_map

转载 作者:搜寻专家 更新时间:2023-10-31 01:35:26 26 4
gpt4 key购买 nike

我有一个

std::unordered_map< std::string, std::unordered_map<std::string, std::string> > 

我只想插入键并稍后填写值。

例如:

#include <string>
#include <unordered_map>

int main() {
std::unordered_map< std::string, std::unordered_map<std::string, std::string> > mymap;
mymap.insert("TestKey");
}

给出错误:

source.cpp(6): error C2664: 'void std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>::insert(std::initializer_list<std::pair<const _Kty,_Ty>>)' : cannot convert argument 1 from 'const char [8]' to 'std::pair<const _Kty,_Ty> &&'
1> with
1> [
1> _Kty=std::string
1> , _Ty=std::unordered_map<std::string,std::string,std::hash<std::string>,std::equal_to<std::string>,std::allocator<std::pair<const std::string,std::string>>>
1> , _Hasher=std::hash<std::string>
1> , _Keyeq=std::equal_to<std::string>
1> , _Alloc=std::allocator<std::pair<const std::string,std::unordered_map<std::string,std::string,std::hash<std::string>,std::equal_to<std::string>,std::allocator<std::pair<const std::string,std::string>>>>>
1> ]
1> and
1> [
1> _Kty=std::string
1> , _Ty=std::unordered_map<std::string,std::string,std::hash<std::string>,std::equal_to<std::string>,std::allocator<std::pair<const std::string,std::string>>>
1> ]
1> Reason: cannot convert from 'const char [8]' to 'std::pair<const _Kty,_Ty>'
1> with
1> [
1> _Kty=std::string
1> , _Ty=std::unordered_map<std::string,std::string,std::hash<std::string>,std::equal_to<std::string>,std::allocator<std::pair<const std::string,std::string>>>
1> ]
1> No constructor could take the source type, or constructor overload resolution was ambiguous

如何添加没有值的键?

最佳答案

如果具有给定键的元素尚不存在,

operator[] 将插入一个值初始化值。所以你可以简单地这样做:

mymap["TestKey"];

如果要获取值的引用,那么

auto& val = mymap["TestKey"];

关于c++ - 如何将键但没有值插入 std::unordered_map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37373935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com