這個問題在C++上。我怎麼能做一個數組,第一行有字符串,第二行有雙打?我認爲它應該是無效的,但它不起作用。有沒有其他方法?乾杯2種類型的多維數組cpp
0
A
回答
5
數組中不能有不同的類型。如果你需要有兩種不同類型有幾種方法可以做到這一點
- 您可以使用
std::pair
,如:std::pair<std::string, double>
您可以使用
struct
或class
包裹不同的充類型一起想:struct some_name { std::string string_name; double double_name; };
你可以使用一個
std::map
或std::unordered_map
- 可以使用2個獨立的陣列一個用於
std::sting
部分,一個用於double
部分 - C++ 11及以後也具有
std::tuple
就是喜歡std::pair
但也可以使用多於2種。
我也建議使用std::array
的,如果你知道在編譯時數組的大小和std::vector
如果數組大小不會直到運行時是已知的。
1
您可以使用pair
,但你必須給這個數組的大小。例如:
std::array<std::pair<std::string, double>, 3> dummy{{"string", 1.1}, {"foo", 2.2}, {"bar", 3.3}};
可以使用first
和second
然後訪問的元素:
dummy[0].first // it is a string (string)
dummy[1].second // it is a double (2.2)
您也可以創建一個struct
並且有一個數組struct
..
0
使用std::pair
或您自己定義的結構/類的數組。或者,如果您需要搜索,請考慮使用std::map
。
0
您可以使用:
示例代碼:使用結構使用對
vector <pair <string, double> > test;
test.push_back(make_pair("Age",15.6));
test.push_back(make_pair("Job",5));
cout << test[0].first<<" " << test[0].second;
:
struct str_test{
string name;
double value;
};
str_test temp;
temp.name = "Some";
temp.value = 1.1;
vector<str_test>test;
test.push_back(temp);
cout << test[0].name <<" "<<test[0].value;
相關問題
- 1. 多種類型的數組
- 2. 多維數組存儲多種數據類型
- 3. C++多維數組多種數據類型
- 4. 在2種不同類型的數組
- 5. 多維數組(2)
- 6. Java - 交換兩種不同類型的多維數組
- 7. 兩種不同對象類型的多維數組
- 8. typescript不同類型的多維數組
- 9. C#獲取多維數組的類型
- 10. Python:不同類型的多維數組
- 11. 定義數據類型多維數組
- 12. Haxe中的多種類型的數組
- 13. 在多維數組中有兩種數組類型的接受名稱嗎?
- 14. cpp二維動態數組
- 15. 具有多種類型的數組?
- 16. 強類型多維數組/收藏
- 17. 加入2多維數組
- 18. 類和2維數組
- 19. 一個數組,多種類型
- 20. 多維模板cpp
- 21. cpp多維向量
- 22. 具有兩種不同數據類型的二維數組?
- 23. 在C#中有多個數據類型的多維數組?
- 24. 模型到多維數組
- 25. 2維數組
- 26. 2維數組
- 27. 2維數組
- 28. 多種類型的C#數組(包括其他數組)
- 29. 具有不同類型的2維數組的聲明
- 30. Angular 2中的多維數組
「我想應該是無效的,但它不是工作。」什麼不工作?你有嘗試過什麼嗎? – robert