我很困惑如何獲取集合中的元素。我認爲我必須使用迭代器,但是如何執行它?如何獲取C++中的集合中的元素?
11
A
回答
18
更換type
用,例如int
。而var
與設定
for (set<type>::iterator i = var.begin(); i != var.end(); i++) {
type element = *i;
}
的最好辦法,雖然是使用boost::foreach的名稱。上面的代碼會簡直成了:
BOOST_FOREACH(type element, var) {
/* Here you can use var */
}
你也可以做#define foreach BOOST_FOREACH
,這樣就可以做到這一點:
foreach(type element, var) {
/* Here you can use var */
}
例如:
foreach(int i, name_of_set) {
cout << i;
}
6
使用迭代器:
std::set<int> si;
/* ... */
for(std::set<int>::iterator it=si.begin(); it!=si.end(); ++it)
std::cout << *it << std::endl;
注意,像MSDN和許多參考cplusplus.com提供了範例 - one example。 ;)
3
要列出所有元素設置你可以這樣做:
#include <iostream>
#include <set>
using namespace std;
int main()
{
int myints[] = {1,2,3,4,5};
set<int> myset (myints,myints+5);
set<int>::iterator it;
cout << "myset contains:";
for (it=myset.begin() ; it != myset.end(); it++)
cout << " " << *it;
cout << endl;
return 0;
}
要檢查集合中是否有特定元素,您可以使用set STL類中的find()方法
2
我喜歡我在使用C++ 0x lambda語法的VS2010 Beta2中看到的內容:
std::for_each(s.begin(), s.end(),
[](int value)
{
// what would be in a function operator() goes here.
std::cout << value << std::endl;
});
0
set<int> os;
for (auto itr = os.begin(); itr != os.end() ; ++itr) cout << *itr << endl;
2
對於C++ 11和較新的:
std::set<int> my_set;
for (auto item : my_set)
std::cout << item << endl;
相關問題
- 1. 如何從集合A中獲取不在集合B中的元素?即AB
- 2. 如何從GAMS的集合中獲取一個元素?
- 3. 如何在Python 3中獲取集合的匹配元素?
- 4. 從F#中的元組集合中獲取元素
- 5. 以循環方式獲取集合中元素的子集
- 6. 從元素集合中獲取元素作爲jQuery對象
- 7. MongoDB幫助獲取集合中的所有元素A不在集合中B
- 8. 如何獲取沒有屬性的元素的集合?
- 9. 如何從Smalltalk的集合中獲取特定數量的隨機元素?
- 10. 如何從我的本地集合中存在的數據庫獲取元素?
- 11. 獲取mongodb集合中的最大元素拋出異常
- 12. 獲取PL/SQL集合中元素的索引
- 13. 從集合中的任意索引獲取元素
- 14. 如何從C#中的集合中獲取唯一值?
- 15. 如何獲取Trello API中的集合?
- 16. 如何獲得使用Java的元素集合的子集?
- 17. C++ 11。如何從沒有const的元組中獲取元素
- 18. 如何在C#中獲取元組的元素?
- 19. Linq在C#中查詢以獲取關於列表的元素集合
- 20. 從集合中取出n個元素
- 21. 我們如何從pl-sql集合中獲取元素的索引號?
- 22. 如何在構建項目數組時獲取集合中的所有元素?
- 23. 如何裝飾ZF2集合中的字段集的元素?
- 24. 如何從C#中的app.config中獲取一些元素?
- 25. 獲取C#中Focused元素的名稱#
- 26. 如何獲取componentDidMount()中的ReactJS元素?
- 27. 訪問C++中的集合中的pair元素
- 28. 如何在JS中獲取元素的子元素的類?
- 29. 獲取集合中的WPF
- 30. 如何獲取C#中字典值集合的計數
兩者下面的答案是正確的,但爲更直接的一點:迭代器向前或向後移動通過的結果使用所設定的增量(++)和減量( - )運營商。 – Toji 2009-12-23 19:12:02