3
A
回答
5
如果你的目标是做矩阵计算,使用Boost::uBLAS。这个库有许多线性代数函数,并且可能比你手动构建的任何东西都快。
如果你是一个受虐狂,想坚持std::vector
,你需要做一些这样的:
std::vector<std::vector<double> > matrix;
matrix.resize(10);
matrix[0].resize(20);
// etc
3
你有多种选择。最简单的是一个原始2维数组:
int *mat = new int[width * height];
要与一个特定的值填充它可以使用std::fill()
:
std::fill(mat, mat + width * height, 42);
为了填补其与任意值使用std::generate()
或std::generate_n()
:
int fn() { return std::rand(); }
// ...
std::generate(mat, mat + width * height, fn);
当您完成使用后,您将不得不记住delete
阵列:
delete[] mat;
所以它包裹在一个类中的阵列是一个好主意,这样你就不必记住每次创建时将其删除:
struct matrix {
matrix(int w, int h);
matrix(const matrix& m);
matrix& operator=(const matrix& m);
void swap(const matrix& m);
~matrix();
};
// ...
matrix mat(width, height);
不过,当然,已经有人为你完成工作。看看boost::multi_array
。
1
(S)他想要物理学中的矢量。
要么推出自己作为一个练习:
class Vector2d
{
public:
// basic math (length: pythagorean theorem, coordinates: you are storing those)
private: float x,y;
};
或使用像征具有Vector2f定义
相关问题
- 1. 将2D矢量2D QVector C++
- 2. 求和2D矢量
- 3. C++如何制作2D矢量函数?
- 4. 2D矢量vs 1D矢量
- 5. 柱尺寸和C++中的2D矢量
- 6. C++ 2D矢量排序
- 7. C++输出2D矢量
- 8. 用C++重塑2D矢量
- 9. C++:调整2D矢量
- 10. 2D矢量到3D矢量
- 11. 矢量==操作符
- 12. 矢量::的push_back VS矢量::操作符[]
- 13. 2D矢量push_back
- 14. Paper.js矢量操作
- 15. 使C++模拟类与2D和3D矢量一起工作
- 16. 2D矢量检查
- 17. 2D矢量乘法
- 18. OpenMP和优化矢量操作
- 19. iOS矩阵和矢量操作
- 20. 如何在C++中查找2D矢量中的矢量?
- 21. 在2D矢量内排序矢量
- 22. 将1D矢量转换为2D矢量
- 23. 从2D矢量中分解矢量
- 24. C++用于循环的2D矢量
- 25. C++填充结构的2D矢量
- 26. 守备2D矢量C++困难
- 27. C++,控制台,cout 2D矢量数组
- 28. 一起在C 2D矢量(塔防)+
- 29. 将2d矢量传递给函数C++
- 30. C++中的2D矢量问题
二维向量* *图书馆?你的意思是*矩阵*? – 2011-01-30 19:02:27