我想創建一個外部矢量固定(總是包含相同矢量)的vector<vector<int>>
,但可以更改內部矢量。例如:只製作矢量中的外部矢量<vector<int>>修復
int n = 2; //decided at runtime
assert(n>0);
vector<vector<int>> outer(n); //outer vector contains n empty vectors
outer.push_back(vector<int>()); //modifying outer vector - this should be error
auto outer_it = outer.begin();
(*outer_it).push_back(3); //modifying inner vector. should work (which it does).
我想這樣做只是const vector<vector<int>>
,但是這使得即使是內部向量const
。
是我創建自己的自定義FixedVectors
類的唯一選擇,還是有更好的方法來做到這一點?
你需要n在運行時才能被決定嗎?或者它可以是一個編譯時間常量? –
你有沒有考慮過使用const數組? – ATaylor
爲什麼不使用數組來創建常量數組大小?我沒有看到爲什麼你需要使它具體成爲一個矢量的原因。 –