multi_array的正确(错误)用法说明
2014-09-13 22:14
316 查看
#include <boost/multi_array/extent_gen.hpp> #include <boost/multi_array.hpp> #include <boost/pool/pool.hpp> #include <boost/pool/pool_alloc.hpp> #include <boost/array.hpp> #include <iostream> #include <cassert> using namespace std; void test_multiArray() { //using namespace boost; typedef boost::fast_pool_allocator<double> FastPoolAllocator; typedef boost::multi_array<double, 3, FastPoolAllocator> Multi3Array; //还可以设置维度的存储顺序 //Multi3Array mult3Array(boost::multi_array_types::extent_gen::extents()[3][4][5]); //Multi3Array mult3Array(boost::extents[3][4][5]); //Right Usage //为什么不能直接写 boost::detail::multi_array::extent_gen<3> extentgen3 = boost::detail::multi_array::extent_gen<0>()[3][4][5]; //Multi3Array mult3Array(extentgen3); //Right Usage <span style="font-size:18px;color:#ff0000;"><strong> //??? //因为操作符顺序的关系不能写成,因为()的操作符顺序高,所以导致 //boost::detail::multi_array::extent_gen<0>()[..],[..]没有先解析 //<em><u>Multi3Array mult3Array(boost::detail::multi_array::extent_gen<0>()[3][4][5]); //Error Usage</u></em> Multi3Array mult3Array((boost::detail::multi_array::extent_gen<0>()[3][4][5])); //Right Usage</strong></span> int nDims = mult3Array.num_dimensions(); assert((mult3Array.num_dimensions() == 3)); assert((mult3Array.num_elements() == 3*4*5)); int sz = mult3Array.size(); //可以通过ListExtend来扩展 boost::array<unsigned,3> dimArray = {3, 4, 5}; Multi3Array mutl3Array2(dimArray); assert(mutl3Array2.num_elements() == mult3Array.num_elements()); } int _tmain(int argc, _TCHAR* argv[]) { test_multiArray(); getchar(); return 0; }
相关文章推荐
- Regsvr32 用法和错误消息的说明
- Regsvr32 用法和错误消息的说明
- Anaconda 错误:numpy.core.multiarray failed to import
- Regsvr32 用法和错误消息的说明
- iOS-OC-NSMutableArray用法大全详细说明
- [STL]list的erase正确与错误用法
- Regsvr32用法和错误消息的说明
- Regsvr32 用法和错误消息的说明
- Regsvr32 用法和错误消息的说明
- extern修饰全局变量正确用法和链接错误的解决方法
- boost.multi_array学习-子视图用法(3)
- Regsvr32 用法和错误消息的说明
- Regsvr32 用法和错误消息的说明
- boost的multi_array的用法
- 使用交换函数交换两个变量的值(以int类型为例)的错误用法以及正确用法
- [STL]list的erase正确与错误用法
- Anaconda 错误:numpy.core.multiarray failed to import
- Regsvr32 用法和错误消息的说明
- boost.multi_array 的基本用法(2)
- Regsvr32 用法和错误消息的说明