gpt4 book ai didi

c++ - std::map 赋值

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:12 24 4
gpt4 key购买 nike

全部,我有以下代码:

在 .h 文件中:

struct Foo
{
int ma;
double mb;
Foo(int a, double b)
{
ma = a;
mb = b;
}
Foo()
{
ma = 0;
mb = 0.0;
}
};

class MyClass
{
public:
MyClass();
private:
std::map<std::string,Foo> m_map;
};

In .cpp file:

MyClass::MyClass()
{
m_map["1"] = Foo( 1, 0.1 );
m_map["2"] = Foo( 2, 0.2 );
m_map["3"] = Foo( 3, 0.3 );
}

将 Foo( 0, 0 ) 分配给 m_map["2"] 的最简单方法是什么?

我可以简单地写

m_map["2"] = Foo( 0, 0 );

但在这种情况下,将创建一个 Foo 类型的新变量。

另外,我没有循环,所以不能真正使用迭代器...

谢谢。

最佳答案

你可以简单地写:

m_map["2"];

这是来自 cppreference 的引述关于 std::map::operator[]:

Inserts a new element to the container using key as the key and a default constructed mapped value and returns a reference to the newly constructed mapped value.

因此,如果您只是尝试“获取”该值,您的默认构造函数将被调用。

关于c++ - std::map 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14026625/

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