0

Android NDK 上的此调用

random_shuffle(node->elements.front(), node->elements.back());

导致 SIGBUS 或 SIGSEGV。我正在使用 gnustl(共享/静态没有区别)。另外,我无法切换 stl 库,因为我需要异常支持。到目前为止,所有其他 stl 功能都可以完美运行。

4

1 回答 1

2

使用node->elements.begin()node->elements.end()

front()back()返回元素,而不是迭代器。我认为这node->elements是指针的集合;在这种情况下,random_shuffle将尝试随机化内存中第一个元素的地址和最后一个元素的地址之间的任何内容。这不是你想要的。

于 2012-07-31T14:03:12.010 回答