簡體   English   中英

如何在C ++中初始化const int二維向量

[英]How to initialize a const int 2-dimension vector in C++

如何初始化const int二維向量:

Const int vector < vector < int > >  v ? 

v = {1 , 1 ; 1, 0}  ?

這是行不通的 。

你可以這樣做( 僅在C ++ 11中 ):

const vector<vector<int>>  v{{1,2,3},{4,5,6}};

另請注意,您無需編寫> > 由於此問題已在C ++ 11中得到修復,因此>>可行。 它不會被解釋為右移運算符(與C ++ 03的情況一樣)。

如果您的編譯器支持C ++ 11的初始化列表功能(就是它的名稱?),您可以這樣做:

const vector<vector<int>> v {
    { 1, 2, 3 },
    { 4, 5, 6 }
};

請注意,您將無法向第一維添加任何元素(但您可以向第二維添加元素),例如

v.push_back(vector<int> { 8, 9, 10 }); // BAD
v[0].push_back(4); // OK

如果你想讓第二個維度不可修改,你就可以做到

vector<const vector<int>> {
    { 1, 2, 3 },
    { 4, 5, 6 }
};

然后

v.push_back(const vector<int> { 8, 9, 10 }); // OK
v[0].push_back(4); // BAD

或者如果你想要元素本身是const ,你會這樣做

vector<vector<const int>> {
    { 1, 2, 3 },
    { 4, 5, 6 }
};

然后

v.push_back(vector<const int> { 8, 9, 10 }); // OK
v[0].push_back(4); // OK
v[0][0] = 2; // BAD

您可能希望在運行時修改它,因此最好完全刪除const

using namespace std;

int main(void){

    const vector< vector<int> > v(10, vector<int>(10,1));

    return 0;

}

將10x10數組初始化為1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM