我在新公司中广泛地看到了C ++代码,该代码使用指向向量的指针来存储数据,我觉得它并不直观。使用这种语法是一种常见做法吗?
vector <T>** data;
data = new vector<T>*(colSize);
for (int i=0 ; i < colSize; ++i)
{
data[i] = new vector<T>();
}
答案 0 :(得分:0)
不,您只需vector
使用vector
(如果尺寸已修复,则为std::array
):
vector<vector<T>> data;
答案 1 :(得分:0)
更常见的做法是:
int colSize = 10;
int rowSize = 12;
typedef int T;
std::vector<std::vector<T> > data(colSize);
std::for_each ( data.begin(), data.end(),
[rowSize] (std::vector<T>& row)
{
row.resize(rowSize);
});
但是,正如通常用“矩阵”所评论的那样,我们总是指一个固定的行大小(如示例所示),并使用单个1D底层数组或vector
并提供一个接口来提供{{1 (或2D
或其他)查找。