簡體   English   中英

返回子列表c ++的迭代器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM