我是一個初學者,剛剛遇到了C++中向量的概念。我有幾個關於它的問題
1.在C++中是否存在二維矢量的概念?如果是,那麼我該如何聲明相應的二維矩陣a [n] [m]?這裏,n和m是變量。
2.矢量如何作爲參數傳遞給函數?默認情況下,它們是按引用或按值傳遞的?
3.在C++中,數組上的向量是否有任何性能優勢? 關於在C++中的屬性向量的查詢
1
A
回答
1
在C++中沒有2-D矢量,要創建矩陣,可以使用矢量矢量。
using namespace std;
int m, n;
// ...
vector<vector<int> > v(n);
for (int y = 0; y < n; y++)
v[n].resize(m);
// ...
雖然計算庫不會這樣實現它們。
要通過引用函數傳遞向量,請使用: void function(vector &v); 省略&將導致在函數調用期間複製向量。
向量具有與C數組相同的性能,但使用起來更實用。 無需手動管理內存,矢量大小始終可以訪問。 你也有自動複製和保證值的連續性(原始數據可以訪問vector :: data()
0
C++中的向量只是一個序列容器。所以,可以用它來保存二維數組。
- 使用
std::vector <std::vector<int>>
- 這取決於目的。
- 不是明智的,但與數組不同,std :: vector是可增長的。
1
1 - 尺寸本身沒有真正的概念。但是你可以創建「嵌套」類型。例如:
std::vector <int> intVec;
std::vector < std::vector <int> > doubleIntVec;
這裏,intVec
可以比一維向量,doubleIntVec
雙尺寸,等等。這些類型不一定是相同的,例如,你可以做std::vector < std::vector <char> > doubleIntVec
,這就是爲什麼「維度」在這裏不是合適的術語。
2 - 和其他類型一樣,沒有特殊的矢量處理。
3 - 是的,例如,如果您需要調整它們的大小,但是您可以實現相似的行爲。除此之外,其好處在於標準化,內置的內存管理,附加方法以及可在矢量上運行的各種STL算法(它是一個標準容器)。
相關問題
- 1. 基於子屬性的關聯查詢
- 2. 關於超類屬性的Hibernate查詢
- 3. 關於siteminder響應屬性的查詢
- 4. C++中的向量查詢
- 5. 我有一個關於變量和屬性的查詢
- 6. 關於屬性名稱SimpleDB查詢
- 7. LINQ查詢相關屬性中的ofType
- 8. 關於gridview的C#查詢
- 9. 關於C++ STL的查詢?
- 10. 關於Objective-C中的複製屬性
- 11. 目標C:查詢關於發佈實例屬性
- 12. 連接查詢關於關聯表的屬性
- 13. Neo4j查詢關係屬性
- 14. 關鍵非屬性查詢
- 15. 關於C++中指針的查詢
- 16. 關於vs2010屬性表的詢問
- 17. RavenDb,關於abstcts類實現的屬性的查詢
- 18. 關於具有多個屬性的Cassandra java BoundStatement的查詢
- 19. 排序關係屬性上的查詢
- 20. 關於C#屬性的困惑
- 21. SQLAlchemy的:通過查詢變量屬性
- 22. 基於子屬性的e4x查詢
- 23. Django的查詢得到基於屬性
- 24. 基於屬性的Linq查詢
- 25. 基於動態屬性的Django查詢()
- 26. 關於對稱屬性的OWL DL查詢
- 27. 基於關聯屬性的值查詢活動記錄
- 28. Rails的HABTM查詢WHERE條件基於關聯屬性
- 29. 關於C型雙查詢++
- 30. SQL查詢與基於關係中的另一個屬性的值在多個元組的屬性
沒有更好的方式來聲明一個大小爲m * n的向量 – gibraltar
向量在這種情況下,你需要使用'm * y + x'來計算(x,y)單元偏移量,而嵌套向量允許使用v [y] [x]語法... –