gpt4 book ai didi

c++ - std::map 插入而不创建临时值

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

我有一个存储字符串和一组 double 的映射,如下所示。

typedef std::map<std::string, std::set<double> > exprType;
typedef std::map<std::string, std::set<double> >::iterator exprIter;

exprType exPricesData;

std::vector<double> lastprice;
std::string exchange;

我需要一种方法来为给定键插入价格并编写了以下代码。

  std::set<double> prices;
double temp = lastprice[0]; // An array of values comes as a parameter
prices.insert(temp); // Creating a temp. set

std::pair<exprIter,bool> locIter = exPricesData.insert(
std::pair<std::string, std::set<double> >(exchange, prices));

for ( int i = 1; i < lastprice.size() ; ++i )
{
locIter.first->second.insert(lastprice[i]);
}

我想知道,有没有办法特别改进第一部分,即创建临时集。

最佳答案

你的意思是这样的吗?

std::set<double> &prices = exPricesData[exchange];  //returns existing value, or inserts a new one if key is not yet in map

prices.insert(lastprice.begin(), lastprice.end());

哦,使用 std::set<double> 时要小心.如果数字是计算的结果,则数字不准确可能会导致集合中出现您不希望出现的不同成员。

关于c++ - std::map 插入而不创建临时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16066232/

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