5
A
回答
3
在C++
你將不得不使用像std::vector<boost::tuple< , , >
或std::vector<std::pair>
如果你只有在每個元組的兩個元素。
C++
情況
實施例:爲C++
情況下(使用boost::assign
)
typedef std::pair<int, char> Pair;
std::vector<Pair> pairs;
pairs.push_back(Pair(0, 'c'));
pairs.push_back(Pair(1, 'a'));
pairs.push_back(Pair(42, 'b'));
擴展例子。
using boost::assign;
std::vector<Pair> pairs;
pairs += Pair(0, 'c'), Pair(1, 'a'), Pair(42, 'b');
對於C#
你可能希望看到this.
+0
你可以舉一個例子來說明如何實現這個嗎? – sikas 2010-12-08 22:34:24
0
在C#和C++這是不可能創建混合類型的數組。您應該使用其他類,如C++中的std :: vector或C#中的字典< char,int >。
9
無論是C#,也沒有C++支持使用本地陣列創建這種數據結構的,但是你可以創建在C#List<Tuple<char,int>>
或std::vector<std::pair<char,int>>
在C++。
如果其中一個元素可以被認爲是唯一鍵,那麼您也可以考慮使用Dictionary<>
或std::map<>
集合,並且元素的順序不重要,但僅限於它們的關聯。
對於列表(而不是字典)的情況下,在C#你會寫:
List<Tuple<char,int>> items = new List<Tuple<char,int>>();
items.Add(new Tuple<char,int>('a', 1));
items.Add(new Tuple<char,int>('b', 2));
items.Add(new Tuple<char,int>('c', 3));
和在C++中,您應:
std::vector<std::pair<char,int>> items; // you could typedef std::pair<char,int>
items.push_back(std::pair<char,int>('a', 1));
items.push_back(std::pair<char,int>('b', 2));
items.push_back(std::pair<char,int>('c', 3));
0
一個經典的陣列(在一個與括號)只能有一個類型,它是其聲明的一部分(如int [] nums)。沒有Array []。
相關問題
- 1. 混合C和C++
- 2. c和C++混合
- 3. c#,C++和C的混合
- 4. 用CMAKE混合C和C++
- 5. 混合C和Objective-C
- 6. 混合C++和Objective C的
- 7. 問題混合C和C++
- 8. 混合JavaScript和C#
- 9. 混合c#和vC++
- 10. 混合gtk +和C++
- 11. C指針和陣列混淆
- 12. 在Eigen C++:混合矩陣和實矩陣
- 13. 混合陣列和對象
- 14. 混合陣列和對象
- 15. 在xcode中混合C和目標C
- 16. 混合Objective-C和C++和OpenCV
- 17. 混合C/C++庫
- 18. 混合陣列串
- 19. AFNetworking混合陣列?
- 20. 混合.c和.h文件
- 21. 混合Swift和Objective-C
- 22. 混合JQuery和Objective C
- 23. C中混合'switch'和'while'
- 24. 混合Objective-C和C++代碼
- 25. 命名空間和C++/C混合頭
- 26. ivars當混合C和Objective-C
- 27. MakeFile.am:混合c和C++,新錯誤
- 28. 混合C和C++時出錯
- 29. 混合本機C++和C++/CLI
- 30. C#混合流
你爲什麼想要? – Beta 2010-12-08 22:33:21
char是C++中的整數類型 – 2010-12-08 23:32:02