gpt4 book ai didi

c++ - std :map check whether two objects are equal?如何

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

<分区>

即使我将两个元素插入到 map 中,为什么以下代码打印出 1

#include <iostream>
#include <map>
#include <string>
#include <utility>

struct Foo
{
Foo(int bar, const std::string& baz)
: bar(bar)
, baz(baz)
{}

int bar;
std::string baz;

bool operator<(const Foo& rhs) const
{
if (bar < rhs.bar && baz < rhs.baz)
{
return true;
}
else
{
return false;
}
}
};

int main()
{
Foo first(0, "test");
Foo second(1, "test");
std::map<Foo, std::string> m;
m.insert(std::make_pair(first, "test"));
m.insert(std::make_pair(second, "test1"));
std::cout << m.size() << std::endl;
}

insert() 的第二次调用表明我们已经在 map 中拥有该项目。为什么?

我的 previous question由于打字错误被错误关闭。我知道 insert 会告诉您该项目是否已经在容器中。

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