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++和Objective C的
- 3. 混合C和Objective-C
- 4. 問題混合C和C++
- 5. 混合gtk +和C++
- 6. C指針和陣列混淆
- 7. 混合陣列和對象
- 8. 在Eigen C++:混合矩陣和實矩陣
- 9. 在xcode中混合C和目標C
- 10. 混合Objective-C和C++和OpenCV
- 11. 混合C/C++庫
- 12. 混合陣列串
- 13. 混合Swift和Objective-C
- 14. 混合JQuery和Objective C
- 15. C中混合'switch'和'while'
- 16. MakeFile.am:混合c和C++,新錯誤
- 17. 混合Objective-C和C++代碼
- 18. 混合本機C++和C++/CLI
- 19. ivars當混合C和Objective-C
- 20. 混合C和C++時出錯
- 21. C#混合流
- 22. 將C#與Objective-C混合
- 23. C#int和陣列
- 24. 2D陣列混淆(C程序)
- 25. 與C++中的ledder containg陣列混淆
- 26. PHP多維混合陣列
- 27. C++在陣列
- 28. 混合兩個陣列
- 29. C:指針混合
- 30. 如何合成getter和setter關於OBJ-C C-陣列
你爲什麼想要? – Beta 2010-12-08 22:33:21
char是C++中的整數類型 – 2010-12-08 23:32:02