gpt4 book ai didi

c++ - 访问由 std::find() 找到的项目

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:41 26 4
gpt4 key购买 nike

我正在尝试自学标准模板库。目前,我正在使用 std::find() 来搜索 std::list

我有测试项目是否存在的代码,它似乎工作正常。

inline bool HasFlag(TCHAR c)
{
std::list<CCommandLineFlag>::const_iterator it = std::find(m_Flags.begin(), m_Flags.end(), c);
return (it != m_Flags.end());
}

然而,这个应该返回匹配元素的版本没有编译。我收到错误消息“错误 C2446:‘:’:没有从‘int’到‘std::_List_const_iterator<_Mylist>’的转换”。

inline CCommandLineFlag* GetFlag(TCHAR c)
{
std::list<CCommandLineFlag>::const_iterator it = std::find(m_Flags.begin(), m_Flags.end(), c);
return (it != m_Flags.end()) ? it : NULL;
}

如何在第二个版本中返回指向匹配项实例的指针?

最佳答案

需要取迭代器引用的项的地址:

return (it != m_Flags.end()) ? &(*it) : NULL;

关于c++ - 访问由 std::find() 找到的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22517810/

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