从vector c ++获取方形矩阵的行数和#列数

时间:2011-07-14 16:36:14

标签: c++ vector sqrt

我有一个大小的矢量让我们说4:

vector <double> example;
example.push_back(3.0); 
example.push_back(10.1);
example.push_back(33.1);
example.push_back(23.3);

所以我有[3 10.1 33.1 23.3];

如果我知道我有一个方阵(即大小只能是4,9,16,25,36,49 ......)

我如何知道与c ++中的列数相同的行数?

所以我在做

int size, col, row;
size = example.size();

row = col = sqrt(size);

还有其他更快的方法吗?

1 个答案:

答案 0 :(得分:2)

分配为连续位置的二维数组将比vector的{​​{1}}或vector数组快。向量有一个小缺点,因为必须调用函数来访问向量(尽管编译器可能会优化这些函数)。

例如:

vector

使用向量会有轻微的开销。

要回答的问题是数组和向量之间的性能差异是否值得。维护和开发人员的时间可能超过性能优势(即较慢但正确且已发布的应用程序可能比后来发布到市场或消费者的更快的应用程序更有价值。