C++中二维数组的标准实现
Standard implementation of 2 dimensional array in C++
我需要存储一些二维数据数组,这些维度是固定的,并且在运行时是已知的。是否有array<T>
模板的2D等价物(在std库或boost中)?
Google:Boost.MultiArray
#include "boost/multi_array.hpp"
#include <cassert>
int
main () {
// Create a 3D array that is 3 x 4 x 2
typedef boost::multi_array<double, 3> array_type;
typedef array_type::index index;
array_type A(boost::extents[3][4][2]);
// Assign values to the elements
int values = 0;
for(index i = 0; i != 3; ++i)
for(index j = 0; j != 4; ++j)
for(index k = 0; k != 2; ++k)
A[i][j][k] = values++;
// Verify values
int verify = 0;
for(index i = 0; i != 3; ++i)
for(index j = 0; j != 4; ++j)
for(index k = 0; k != 2; ++k)
assert(A[i][j][k] == verify++);
return 0;
}
相关文章:
- 根据C++标准的定义实现"is_similar"类型特征
- C++标准是否允许<double>在没有开销的情况下实现 std::可选
- 任何用于 boost::p roperty 树的标准库实现
- 如果不包含 pthread,为什么 GCC 的线程标准库实现会抛出异常?
- 如何知道用于实现标准代码段的确切数据结构和算法,例如在C++STL中?
- 是否可以仅使用标准 c++/c++11 实现不带"sleep"的计时器?
- 在 C++11 标准中,为什么要依赖 char 类型实现?
- 是否可以在C++标准库中实现always_false
- 如何(以及谁可以)实现C++委员会定义的标准库功能
- 是否可以在标准弱指针之上实现非拥有"slightly smart"指针?
- 标准库头文件函数原型的实现是如何用 c++ 编写的?
- 为什么标准库不以无锁的方式为 8 字节以下的结构实现 std::atomic?
- GCC 如何实现 C++ 标准分配器
- clang实现char8_t的方式是否存在缺陷,或者标准的某个黑暗角落是否禁止优化?
- 是否使用符合标准的线程池进行 std::async 的 Visual C++ 实现
- 以C 标准的方式实现STD :: Malloc
- 标准库中 std::d isjunction 的实现
- 发布标准实现争用条件
- C++中二维数组的标准实现
- 为什么许多标准实现允许将值直接分配给ostream_iterator