Std::list和find(),如果使用find在列表中未找到项/值,则出现错误
std::list and find(), if item/value is not found using find in list error appears
我正在测试std::list与find()函数从。在我将它实现到我的程序之前,我想看看它们是否会像我想象的那样工作。一开始效果很好:'
list<int> l;
l.push_back(1);
l.push_back(2);
l.push_back(9);
list<int>::iterator it = find(l.begin(), l.end(), 9);
if (*it == 9)
{
cout << "Found";
}
else
{
cout << "Not Found";
}
在这个例子中,输出是"Found",这是正确的,但是当我这样做时:
list<int> l;
l.push_back(1);
l.push_back(2);
l.push_back(9);
list<int>::iterator it = find(l.begin(), l.end(), 3);
if (*it == 9)
{
cout << "Found";
}
else
{
cout << "Not Found";
}
它不输出任何东西,但它应该输出"未找到",我得到一个"调试断言失败!"错误,它说"表达式:列表迭代器不可解引用",我怎么能解决这个问题?
std::find
返回end()
迭代器。并取消对end()
迭代器的引用,如下所示:
if (*it == 9)
是未定义行为。要查看是否找到了元素,请检查end迭代器:
if (it != l.end())
{
cout << "foundn";
}
相关文章:
- 错误"Could not find Boost"(缺少:上下文标头)
- "Cannot find -l<directory>"错误 - CMake
- 为什么在向量上使用 std::find() 时会出现错误?
- 使用 std::find 时没有匹配的函数调用错误
- unordered_set .find 方法无法编译的 C++ "expression must have class type"错误
- find() 没有返回可以使用的 int 值,并且在编译之前给出错误
- 生成错误:"cannot find target for file"和"undefined reference"
- 密钥错误: "Couldn't find enum caffe.EmitConstraint.EmitType"
- std::string::find 返回错误的答案
- 使用 Korge 编译本机时"Unable to find library"抛出错误
- 构建 vcxproj 文件给我一个无信息的错误"The system cannot find the path specified"
- 为什么在使用"std::find"时,错误与"运算符=="不匹配?
- C ++设置与结构,set.find()函数使错误'invalid comparator'
- C++ 错误:"cannot find bounds of current function"
- 调用 QSqlTableModel setTable 方法时出现"Unable to find table"错误
- 为什么在尝试编译示例代码时收到错误"cannot find -lcurl"?
- 这个奇怪的"/usr/bin/ld: cannot find -lXAW_LIBRARY-NOTFOUND"错误是什么意思?
- 如何解决Linux错误 - "cannot find -lGL"?
- 如何修复链接器错误"mingw32/bin/ld.exe: cannot find -lSDL"?
- String.find()错误地返回true