【发布时间】:2021-07-14 09:15:03
【问题描述】:
我有以下结构:
struct data {
std::string str;
int num;
int num2;
std::string str2
} data1;
我有一个std::list<struct data> list;
我想在std::list中添加struct,假设没有这样的结构,使用std::find_if和lambda函数。
std::list<data>::iterator it = std::find(list.begin(), list.end(), data1);
if (it == list.end()) list.push_back(data1)
你怎么能做到这一点?
【问题讨论】:
-
我为我的答案添加了一个解决方案,看看它是否适合你。
-
我做了,但我想用 std::find_if 和 lambda 函数的
-
@ivanovIAVDD 是否需要使用
find_if和 lambda? -
如果您提供散列函数和
operator==,您可以使用std::set。 -
@Ted Lyngmo,是的,我必须使用 find_if 和 lambda