- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我面临以下问题。我想使用 boost::multi_array 创建一个对象指针的多维数组,但即使我编写的代码可以编译,当我尝试在 Eclipse 中运行时,程序也会终止并且不会打印任何内容。让我举例说明一个非常小的例子,以防这可能有任何帮助。所以有以下非常小的简单类:
class example {
public:
example();
virtual ~example();
int a;
};
我只是尝试通过以下方式创建和使用此类的多指针数组:
int main() {
typedef boost::multi_array<example * , 2> array_type1;
array_type1 DE(boost::extents[2][2]);
DE[0][0]->a=6;
DE[1][0]->a=7;
DE[0][1]->a=8;
DE[1][1]->a=9;
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
还要注意,当我使用 boost/test/minimal.hpp ( http://www.boost.org/doc/libs/1_46_1/libs/test/doc/html/minimal.html ) 运行相同的代码来检查正在发生的事情时,主要结果如下所示:
int test_main(int, char*[]){
typedef boost::multi_array<example * , 2> array_type1;
array_type1 DE(boost::extents[2][2]);
DE[0][0]->a=6;
DE[1][0]->a=7;
DE[0][1]->a=8;
DE[1][1]->a=9;
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return boost::exit_success;
我收到以下消息:
/usr/include/boost/test/minimal.hpp(123): exception "memory access violation at address: 0x00000008: no mapping at fault address" caught in function: 'int main(int, char**)'
**** Testing aborted.
**** 1 error detected
任何关于如何解决这个问题的建议现在对我都非常有帮助!
最佳答案
array_type1 DE(boost::extents[2][2]);
DE[0][0]->a=6;
您取消引用 DE[0][0]
处的指针,但事先从未使其指向实际的 example
实例。
关于c++ - 尝试使用对象指针的 boost::multi_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36451249/
我一直在研究 boost::multi_array 库,以寻找一个允许您在单个 for 循环中遍历整个 multi_array 的迭代器。 我不认为那个库中有任何这样的迭代器。 (在那里找到的迭代器可
我有一个 3 维的 boost::multi_array boost::multi_array* newArr = new boost::multi_array(boost::extents[x][
下面的代码给出了一个段错误: #include #include #include "binItr.h" #include using namespace std; int main(){
我面临以下问题。我想使用 boost::multi_array 创建一个对象指针的多维数组,但即使我编写的代码可以编译,当我尝试在 Eclipse 中运行时,程序也会终止并且不会打印任何内容。让我举例
我对我认为应该是一段简单的代码有疑问。我有一个 N x M 的二维数组,当前存储在 boost multi_array 中。 N 列表示空间维度,例如x,y,z 和 M 行是每个维度上的点。 我想做的
我有一个模板类,它执行一些计算并返回 multi_array,像这样有点过于简单了: template class C { public: typedef boost::multi_arra
我有三维 boost::multi_array 对象。我想将 origin 的绝对偏移量转换为多维索引,反之亦然。有没有一种简单的方法可以使用 boost 的内置工具来做到这一点,或者我需要自己根据数
我想学习如何将一个一维 multi_array 添加到另一个一维 multi_array 的末尾。我该怎么做? 最佳答案 与任何其他容器一样,Boost 多数组具有(没有很好记录的)迭代器,因此您可以
我正在使用 boost::multi_array 来存储一些数据。我使用 View 处理数据,因为我需要处理不同维度的数据切片。 我的问题是,boost::multi_array 的内存是如何管理的?
我正在使用二维 boost::multi_array 来存储自定义结构的对象。问题是我有大量的这些对象,所以我需要的数组索引超出了整数的范围。是否有可能将 long 用作多数组的索引,或者您对如何存储
我看过this post它解决了如何使用 boost::multi_array::origin() 函数循环遍历不是从零开始的数组,但这只会创建一个循环。 如何遍历multi_array的每一维,例如
范围可用于对 Boost 多维数组 (multi_array) 进行切片。根据documentation有多种定义范围的方法,但并非所有方法都能编译。我在 Ubuntu 11.04 上使用 GCC 4
假设我有一个 N 维 boost::multi_array(为简单起见,类型为 int),其中 N 在编译时已知,但可以变化(即是一个非类型模板参数).我们假设所有维度的大小都相同 m。 typede
首先我想说我是新手。 我正在尝试初始化 boost:multi_array在我的类(class)里。我知道如何创建 boost:multi_array : boost::multi_array foo
在下面的代码中,ExtractSubArray 函数是完全通用的,而 ExtractSubArrayCornerAndExtent 需要在编写代码时了解维度(以构造RangeType 参数)。有什么方
我有一个 3 维 boost::multi_array 表示 2d tilemaps 层。我希望能够清除一层——也就是遍历一层上的所有图 block 并将其值设置为 0,但我不知道该怎么做——我相信我
我正在尝试弄清楚 boost::multi_array 构造函数或调整大小方法是否可以抛出 bad_alloc 异常(或指示分配或调整大小失败的其他一些异常)。我无法在任何地方的文档中找到此信息。 澄
我必须通过引用或指针将数组传递给其他函数,我不在乎,只要它运行速度快即可。这就是我开始使用boost库的原因。我是通过以下方式做到的: using namespace boost; typedef
我无法调整 boost::multi_array 的大小。当我尝试它时,它会给出关于 std::_Copy_impl 等的错误。这是代码 #include typedef boost::multi_
我正在尝试使用以下测试程序将 boost::multi_array 的性能与本地动态分配的数组进行比较: #include #define _SCL_SECURE_NO_WARNINGS #defi
我是一名优秀的程序员,十分优秀!