问题标签 [boost-iterators]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 带有取自迭代器的指针参数的 C++ 模板函数给出错误
如果标题描述性不够,我很抱歉,我不知道这有什么问题:
当我从以下成员函数中调用上述函数时:
我总是得到:
policy.hpp:237: error: no matching function for call to 'findPolicy(boost::ptr_vector<Greedy<guState>, boost::heap_clone_allocator, std::allocator<void*> >&, State*&)
java - 在大量迭代中我应该采取什么方法?
我得到了这个 Java webapp(JSP+Struts+Hibernate+MySQL+tomcat6),现在有大约 20000 个用户,而且这个数字还在迅速增长。我必须定期对所有用户进行排名。排名过程涉及大量对象和休眠动作,而且相当繁重。说到java,不幸的是我必须迭代所有的用户,并在他们身上一一应用这个过程。这种方法会消耗大量服务器资源。
另一方面,我可能能够在 MySQL 端的存储过程中运行所有这些操作。我很确定代码会一团糟,以后修改起来很麻烦。虽然这种方式性能会好得多,但软件工程原则不会很好地采用这种解决方案。
你有什么建议?
c++ - 所有双向迭代器的通用类类型,c++
我有一堆基于顶点实现几何对象的类,例如 TriangleMesh、PointClouds 或 Edgesets。它们都继承自 VertexBasedGeometry。我现在希望它们都在其顶点的引用上返回一个双向迭代器。这将允许以非模板方式访问任何 VertexBasedGeometry 的顶点。现在,我对迭代器不是很熟悉,这变得相当困难。我的尝试如下所示:
在从 VertexBasedGeometry 继承的 TraingleMesh 中,我现在尝试通过返回包含其顶点的 std::vector 的开始迭代器来实现函数开始。这会在 gcc 4.2 (apple) 上导致以下编译器错误:
我现在的问题是:为什么这不起作用,我应该如何改变它才能让它起作用?阅读更多关于迭代器的内容后,我有一种轻微的感觉,即我无法为任何双向迭代器找到通用类型,对吗?一些类可能将它们的顶点存储在 std::vector 以外的容器中,其他类已经提供了(非 stl-conforming )迭代器,我想适应我的常见类型。我愿意接受任何关于如何实施这一点的建议。
c++ - Boost Single Pass Iterator 和 Forward Traversal Iterator 有什么区别?
在New Iterator Concepts 标准提案中,我无法解读单通道迭代器和前向遍历迭代器之间的任何有用区别。
前向遍历表中“++r”行的“断言/注释”是否暗示前向遍历迭代器是可复制的,而单遍迭代器不是?
此外,为什么默认构造的附加功能会使迭代器模型向前遍历?理由是什么?
boost - boost迭代器外观和dereference()函数
我正在尝试创建一个迭代器,它只能取消引用实际值类型,而不是引用。这是否可以使用boost::iterator_facade
,或者它是否需要我拥有可以由地址\引用返回的值。
更具体地说,我的迭代器返回一个std::pair
引用,这意味着我的迭代器value_type
没有存储在任何地方,而是在取消引用时动态创建(如std::map::iterator
)。
c++ - 在并行数组上编写随机访问迭代器
背景
带有一堆代码的大型应用程序,我无法更改存储机制。
我想在存储在并行数组中的一组多维数据上创建一个迭代器,这样我们就可以开始使用标准算法和容器。
关于如何使其正常工作的任何想法?
输出
0
20
20
20
20
20
20
20
20
20
改成之后
输出
0
20
10
0
0
0
0
0
0
boost - boost directory_iterator 接收 SIGABRT
我正在使用 boost/filesystem 来迭代目录并将它们添加到 MacOSX + XCode3 上的 Zip 文件中。
我原来的逻辑是这样的
返回此函数后会出现问题,特别是在调用 directory_iterator 的析构函数时,我猜。似乎它删除了无效指针,并接收 SIGABRT。程序有时会像下面那样崩溃,有时当我点击跳过时它会冻结,XCode 说“跳过”但是调用堆栈消失没有任何进展。关键是,即使我在循环内没有做任何事情,问题仍然存在,这意味着当变量被简单地创建并返回函数时。
有关更多信息,程序崩溃时的调用堆栈如下所示。
它进入~dir_itr_imp,所以它似乎在通过类型检查后到达了正确的析构函数。
我对 directory_iterator 做错了吗?如果有人遇到这个问题,请告诉我。
c++ - 提升 iterator_facade 和前向声明
我想创建一个支持迭代器的自定义容器。它看起来像这样:
然后我为此创建了一个迭代器:
问题如下。如果我SomeContainer
在之前声明SomeiIterator
并转发声明SomeIterator
,那么编译器会抱怨 stbegin()
和end()
方法SomeIterator
是不完整的类型。但是,如果我以另一种方式来做,那么问题就反过来了:SomeContainer
不完整。
- 是否有可能解决这个问题,同时让两个类完全只包含标题并且所有方法都隐式内联(它们大多只包含几行)?
- 如果没有,是否可以通过将一些方法分解到 cpp 文件中来解决它?
c++ - 使用 boost::iterator_facade<> 为迭代器返回 ref,但为 const_iterator 返回 const_ref?
我有这样的课,
value_type
不依赖于类的常量BSTNode
。这就是为什么我必须保留这const_cast<value_type&>()
部分。如何确保const_iterator
return aconst_ref
但iterator
返回 modifiable ref
?这是相关的typedef,
和节点类,