我想创建一个外部矢量固定(总是包含相同矢量)的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
为什么不使用数组来创建常量数组大小?我没有看到为什么你需要使它具体成为一个矢量的原因。 –