boost::multi_array
一言以概之,boost::multi_array就是N维数组。boost::multi_array可以看作STL容器类的扩展,可以和STL相关算法一起工作。
在STL中,N维数组可以通过std::vector<std::vector<...> >类似的方法来模拟,相比而言,boost::multi_array更高效,更直观。
例程1:
#include <cassert>
#include "boost/multi_array.hpp"
#include "boost/cstdlib.hpp"
int main () {
// Create a 3D array that is 3 x 4 x 2
typedef boost::multi_array<double, 3> array;
array A(boost::extents[3][4][2]);
// Assign a value to an element in the array
A[0][0][0] = 3.14;
assert(A[0][0][0] == 3.14);
return boost::exit_success;
}
例程2:
#include <cassert>
#include "boost/multi_array.hpp"
#include "boost/array.hpp"
#include "boost/cstdlib.hpp"
int main () {
// Create a 3D array that is 3 x 4 x 2
boost::array<int, 3> shape = {{ 3, 4, 2 }};
boost::multi_array<double, 3> A(shape);
// Assign a value to an element in the array
A[0][0][0] = 3.14;
assert(A[0][0][0] == 3.14);
return boost::exit_success;
}
例程3:
#include <iostream>
#include "boost/multi_array.hpp"
#include "boost/array.hpp"
#include "boost/cstdlib.hpp"
template <typename Array>
void print(std::ostream& os, const Array& A) {
typename Array::const_iterator i;
os << "[";
for (i = A.begin(); i != A.end(); ++i) {
print(os, *i);
if (boost::next(i) != A.end())
os << ',';
}
os << "]";
}
void print(std::ostream& os, const double& x) {
os << x;
}
int main() {
typedef boost::multi_array<double, 2> array;
double values[] = {
0, 1, 2,
3, 4, 5
};
const int values_size = 6;
array A(boost::extents[2][3]);
A.assign(values,values + values_size);
print(std::cout, A);
return boost::exit_success;
}
分享到:
相关推荐
通过boost::asio::serialport类实现串口通信的例子
boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_...
任何写入boost::multi_array接口的 C++ 算法都可以轻松地重新编译以使用 Numpy 数组。 已知缺点: 由于 boost::multi_array 的设计,数组的数据类型和维数在编译时是固定的(尽管这在实践中通常不是一个重要的限制...
该资料为boost电路闭环控制的详细计算文档,文档用mathcad打开
详细讲述了boost::thread的用法
Boost程序库完全开发指南:深入C++_准_标准库 第3版 中文.part2
使用VS2017编译的boost库最新版1.68的动态库和静态库,多线程参数,经过测试可用
Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发...
本文实例讲述了C++之boost::array的用法,分享给大家供大家参考。具体如下: 代码如下:#include #include #include <boost> #include using namespace std; int main() { boost::array<int> ...
Boost_ClosedLoop_boost控制_boost闭环_boost闭环_Boost_boost双闭环_源码.zip
Boost_ClosedLoop_boost控制_boost闭环_boost闭环_Boost_boost双闭环.zip
从官网下载的boost_1_73版本的boost,亲测安装可用。 安装方法: ./bootstrap.sh --prefix=/usr/local/boost ./b2 install 配置文件 vim /etc/profile export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/...
光伏发电有效模型光伏 真实可用 可以直接套用来用以学习光伏发电
boost::lexical_cast用法示例,包含数值转字串,字串转数值以及相应的异常处理代码
orthanc ThirdPartyDownloads:boost_1_69_0_bcpdigest-1.5.6.tar.gz
CMake Error at cmake/boost.cmake:81 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST= This CMake script will look for boost in <directory>. If it is not there, it will download ...
boost_1_78_0编译及使用,下载好的1.78以及编译说明文档。
boost::asio::serial下6个工程演示多种串口读取写入方式方法,包含simple,with_timeout,async,callback,qt_integration,stream 等多个工程演示多种方式读取,写入串口,char,string ,buffer[]等多种数据格式。
Boost程序库完全开发指南: 深入C++“准”标准库!!
主要介绍了C++之Boost::array用法简介,较为详细的分析了Boost::array中的常见用法,并用实例的形式予以总结归纳,需要的朋友可以参考下