gpt4 book ai didi

c++ - boost::flyweight 作为 std::map 中的值

转载 作者:太空狗 更新时间:2023-10-29 21:45:00 24 4
gpt4 key购买 nike

我想知道为什么 std::map使用插入后不替换值。
示例:

using std::string;
using boost::flyweight;
using std::map;
int main()
{
map<string,flyweight<string>> testMap;

flyweight<string> str("1");
testMap.insert(std::make_pair("1","1"));
testMap.insert(std::make_pair("1","2"));
str = "2";
printf("Inside map at \"1\" is:%s\r\n",testMap.at("1").get().c_str());
printf("str equals %s",str.get().c_str());
}

将打印:

Inside map at "1" is: 1

str equals 2

二手 flyweight<string>举个例子,使用 int 时会发生同样的事情秒。

在 windows 操作系统上工作,visual 2010 ide。
谢谢,

最佳答案

std::pair<iterator,bool> insert( const value_type& value );std::map

如果元素已经存在则不会插入

在这里pair::second如果插入了新元素,则对中的元素设置为 true,如果等效键已存在,则设置为 false。

您的问题与boost无关

查看 this 上的示例页。它说明了您的场景。

关于c++ - boost::flyweight 作为 std::map 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18676825/

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