gpt4 book ai didi

c++ - 将元素添加到 C++ 映射中

转载 作者:行者123 更新时间:2023-11-30 01:18:56 25 4
gpt4 key购买 nike

我的程序中有一张 map ,用于存储产品 p 的代码及其数量。

如果请求新请求,并且产品已经存在于 map 中,我只需要将对的第二个元素(代码,数量)与 map 中的元素相加即可。

我该怎么做?

void Request :: addItem (Product p, double amount) {
if(this->isItemRequest(p)) {
//p already exists in the map.
}

this->rdata.insert(pair<int, double>((int)p.getCode(), amount));
}

非常感谢!

最佳答案

假设您的 map 是在 Request 内声明的分类为 std::map<int, double> rdata ,代码可以是:

void Request::addItem( Product p, double amount )
{
if ( this->isItemRequest(p) )
{
int Code = int(p.getCode);
this->rdata[ Code ] += amount;
}

this->rdata.insert( pair<int, double>(int(p.getCode), amount) );
}

但是,如果 isItemRequest()只是一个简单的检查,您的代码可以简化为:

void Request::addItem( Product p, double amount )
{
int Code = int(p.getCode);
this->rdata[ Code ] += amount;
}

P.S. 也许,传递 Product 是个好主意(如果您可以更改界面)通过 const 引用。

关于c++ - 将元素添加到 C++ 映射中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21782752/

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