我試圖將vector<vector<double> >
類型的變量傳遞給函數F(double ** mat, int m, int n)
。 F函數來自另一個庫,所以我沒有選擇更改它。有人能給我一些提示嗎?謝謝。C++ vector <vector <double>>加倍**
4
A
回答
7
vector<vector<double> >
和double**
是完全不同的類型。但它有可能與存儲了一些雙指針另一個向量的幫助養活這個功能:
vector<vector<double> > thing = ...;
vector<double*> ptrs (thing.size());
for (unsigned i=0, e=ptrs.size(); i<e; ++i) {
ptrs[i] = &(thing[i][0]); // assuming !thing[i].empty()
}
your_function(&ptrs[0],...);
之一的這部作品的原因是因爲的std ::矢量保證所有的元素都consecutivly存儲在內存中。
1
我看到它的方式,你需要你的vector<vector<double> >
轉換爲正確的數據類型,複製所有值到一個嵌套數組中
載體在一個完全不同的方式不是一個數組舉辦的過程中,所以即使你可以強制數據類型匹配,它仍然無法工作。
不幸的是,我的C++經驗在幾年前,所以我不能給你一個具體的例子。
1
向量<向量<雙>>與m的雙指針幾乎不相同。從它的外觀來看,m被假定爲二維陣列,而矢量可以鋸齒狀存儲並且不一定在存儲器中相鄰。如果要傳遞它,則需要將矢量值複製到temp 2dim double數組中,以代替該值。
相關問題
- 1. convert <vector><string> TO <vector><int> C++,Win32
- 2. std :: vector <std :: vector <T>> vs std :: vector <T*>
- 3. vector <string> or vector <vector <char>>?
- 4. Vector <Customer> C++,List <Customer>&Vector <Customer> Java
- 5. iterate std :: vector <std :: vector <char>>?
- 6. 展開std :: vector <std :: vector <T>>轉換爲std :: vector <T>
- 7. C++ vector <vector <double>>使用typename別名
- 8. 在C++中初始化一個向量<vector <vector <double>>>
- 9. C++ std :: vector <std :: shared_ptr>
- 10. std :: vector <T>
- 11. 如何爲類生成字典(vector <vector <short>>)
- 12. 如何將Vector <Complex>投射到Vector <Double>?
- 13. int [] [] convert --to - > Vector <Vector <Double>>
- 14. 我是否應該將Vector <>聲明爲Vector <> *?
- 15. vector <vector<int>>需要太長的初始化
- 16. 如何從C++向C++/CLI返回std :: vector <std :: vector <int>>?
- 17. 如何將Vector <Vector <String>>轉換爲Object [] []?
- 18. 如何將Vector <Vector <PointF>>保存到ArrayList中?
- 19. 解引用不能用於std :: vector <std :: vector <double>>
- 20. std :: vector <float> to std :: vector <glm::vecX>沒有複製
- 21. 將std :: vector <std :: vector <float>>轉換爲float **
- 22. C++:矢量<對<vector<int>,INT>>
- 23. 與<vector>和<fstream>
- 24. 如何迭代boost :: variant <std :: vector <int>,std :: vector <String>>?
- 25. 的char * :: vector的<char>
- 26. 類型'std :: vector <Object*>&'&'&'
- 27. 取消分配作爲類成員的<vector <vector <DataClass>>
- 28. vector <double> :: size_type與double
- 29. 如何從std :: vector <>
- 30. qt #include <vector> error
@Daniel:已更正 – Novelocrat