在滿足Sequence概念的自定義STL類中應該定義的最小嵌套類型定義集是什麼?自定義的順序應該是兼容:自定義STL序列的最小嵌套類型定義集?
3
A
回答
5
C++標準說,所有的容器必須具有下列的typedef(C++ 03 23.1 /表65):
value_type
reference
const_reference
iterator
const_iterator
difference_type
size_type
可逆容器必須具有下列的typedef(C++ 03 23.1 /表66):
reverse_iterator
const_reverse_iterator
0
我想出了這個程序,找出一套極小子嵌套類型定義的:
#include <iostream>
#include <iterator>
#include <vector>
#include <boost/foreach.hpp>
#include <boost/range/algorithm/sort.hpp>
struct Foo
{
typedef std::vector<int> Vec;
typedef Vec::const_reference const_reference;
typedef Vec::iterator iterator;
typedef Vec::const_iterator const_iterator;
iterator begin() {return vec.begin();}
iterator end() {return vec.end();}
const_iterator begin() const {return vec.begin();}
const_iterator end() const {return vec.end();}
void push_back(const int& n) {vec.push_back(n);}
Vec vec;
};
int main()
{
Foo f;
std::back_insert_iterator<Foo> it(f);
*it = 2; ++it; *it = 1; ++it;
boost::sort(f);
BOOST_FOREACH(int x, f)
{
std::cout << x << " ";
}
}
如您所見,至少需要const_reference
,iterator
和const_iterator
。
我應該提到,我編譯了這個gcc 4.4.3和boost 1.43。
相關問題
- 1. NETJson,如何序列化自定義類型集合中的自定義類型
- 2. PHP主義:自定義嵌套集?
- 3. gson嵌套自定義序列化器
- 4. STL與自定義數據類型
- 5. 自定義類型的小巧陣列
- 6. 存儲陣列自定義類的嵌套自定義類來standardUserDefaults
- 7. web api 2嵌套類的自定義模型聯編程序。
- 8. c#使用嵌套類反序列化自定義類
- 9. C#序列化嵌套自定義類列表
- 10. 排序自定義類型的列表
- 11. 自定義排序的嵌套文檔
- 12. 使用嵌套類型定義指令
- 13. 嵌套模板typedef - 類型定義
- 14. Kryo序列化與嵌套HashMap與自定義類
- 15. 嵌套自定義元素
- 16. 自定義嵌套路線
- 17. Sass:&定義嵌套類時
- 18. 序列化類型定義?
- 19. 反序列化自定義JsonConverter中的嵌套對象列表
- 20. python(內置)使用嵌套自定義類型的json de/serilazation
- 21. NetSuite創建自定義類型的自定義列表
- 22. 自定義類型
- 23. 戶外自定義數據列表表格嵌套集合
- 24. 自定義模型綁定器來綁定嵌套屬性值
- 25. 類型定義中的嵌套類型參數
- 26. 類定義自定義排序順序
- 27. NHibernate自定義集合類型
- 28. 亞音速自定義集合類型
- 29. 嵌套ACF JSON數據與自定義後類型
- 30. UWP:使用DataContractJsonSerializer嵌套自定義類型
什麼使用const_reference? – 2011-01-28 01:08:39