[英]Return iterator of a sublist c++
我们有一个清单
std::list<int> list;
// fill part of the list with 5
list.push_back(5);
list.push_back(5);
list.push_back(5);
// fill part of the list with 10
list.push_back(10);
list.push_back(10);
list.push_back(10);
// iterator that starts with 5
std::list<int>::iterator iterFiveBegin = list.begin();
//
std::list<int>::iterator iterEnd = list.end();
如何获取std::list<int>::iterator iterTenBegin
的iterator std::list<int>::iterator iterTenBegin
以“10”开头?
首先,不要使用变量名list
,而是尝试使用intList
。
你可以使用std::find
std::list<int>::iterator it = std::find (intList.begin(), intList.end(), 10);
Per std::find
文档 :
的std ::发现
返回值
Iterator到满足条件的第一个元素,如果没有找到这样的元素则为last。
只需使用<algorithm>
标头中的std :: find :
std::list<int>::const_iterator ten = std::find(list.begin(), list.end(), 10);
确保检查它是否有效:
if (ten == list.end())
{
// no 10 found in list
}
另外,不要将std::list
实例命名为“list”。
如果您的列表已排序,我想您可以使用std :: lower_bound和std :: upper_bound
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.