簡體   English   中英

C++ 中的 std::list 有 find() 方法嗎?

[英]Does std::list in C++ have a find( ) method?

所以我創建了一個數組列表的數組:

list<string> myArrayOfLists[size];

然后我像這樣往里面塞了一個詞:

myArrayOfLists[index].push_back(word);

然后我試着找一個這樣的詞:

myArrayofLists[index].find(myArrayOfLists[size].begin(), myArrayOfLists[size].begin(), word);

最后一個命令返回了一個錯誤,指出:

no member named 'find' in 'std::list<std::basic_string<char>, std::allocator<std::basic_string<char>>>'

我想如果我導入了<algorithm>那么為什么我仍然收到錯誤? 有沒有另一種方法可以搜索列表並找到我要找的東西?

只有那些能夠以某種方式有效地找到元素的標准庫容器才有find成員函數。 對於所有其他容器,請使用std::find free 函數:

auto it = std::find(x.begin(), x.end(), "needle");

std::cout << (it == x.end() ? "not found" : "found");

哎呀! 你忘記閱讀文檔了 std::list沒有成員函數find

相反,使用標題<algorithm>的通用std::find

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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