问题标签 [const-iterator]
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++ - 将 const_iterator 传递给擦除不能在 gcc 4.7.1 上编译
巨大的错误:
相关功能:
有人知道为什么会这样吗?据我所知 gcc++11 确实支持这个问题。如果我删除所有“const”,编译器就不会大喊大叫。
c++ - 为迭代器调用 const 而不是非常量访问运算符
我想在一个 STL 迭代器之上构建一个自定义迭代器。这是我希望可以编译的精简版代码:
但是它显示以下错误消息:
据我所知,它指的是访问运算符的非常量版本,但是如果我在这里明确使用常量迭代器,为什么?
c++ - const_iterator 与迭代器的比较是否定义明确?
考虑以下代码:
在这里,我引入了一个错字:在比较中我调用vec.end()
而不是vec.cend()
. 这似乎与 gcc 5.2 一样工作。但它实际上是根据标准明确定义的吗?可以iterator
和const_iterator
安全地进行比较吗?
c++ - How do I create a const boost::iterator_range
The comment at Why does boost::find_first take a non-const reference to its input? suggests "the caller to create a non-const iterator_range with const_iterator template parameter to "prove" that the iterated object has a sufficient lifetime."
What does this mean and how do I do it?
In particular, how do I achieve const-correctness with this code?
c++ - 如何“引用”调用迭代器的对象
我有一个 myTest 类,它实现了一个包含一组元素的数组和另一个包含元素出现次数的数组。示例:如果用户插入此输入:{2,5,76,76}
,我已实例化array[]= {2,5,76}, occurrences[]= {1,1,2}.
然后我有一个随机访问迭代器,现在当我用迭代器打印出我的数组时,我获得了这个控制台输出"2,5,76"
,它在控制台中写入了我的数组的所有元素,我怎样才能获得一个迭代器来打印我的数组计算出现次数?我想要这样的打印输出:"2,5,76,76"
,那么我应该在哪里修改我的迭代器以获得我想要的东西?
templates - 容器模板类 - 减小容器大小
我编写了一些代码来减少模板化容器类的容量。从容器中删除一个元素后,擦除功能会检查是否有 25% 的总空间正在使用,以及将容量减少一半是否会导致它小于我设置的默认大小。如果这两个返回 true,则缩小函数运行。但是,如果在我处于 const_iterator 循环中间时发生这种情况,则会出现段错误。
再次编辑:我认为这是因为 const_iterator 指针指向旧数组,需要指向由 downsize() 创建的新数组……现在该怎么做……
c++ - 自定义类的 const 实例化是否也使类中的 *everything* 成为常量?
- 大多数编译器实际上是如何处理 const 的?从技术上讲是什么意思?(实际上不)
当我说出我的意思时,假设我有一个自定义类,其中包含一个容器作为成员字段,然后是一个通过引用值传递并将它们附加到该成员字段中的函数。
如果我有这个类的 const 实例化,常数会过滤掉吗?
如果我有一个非 const 容器的 const STL 迭代器(我的 sharedPointers 到我的自定义类的实例化),那么 const 到底是什么?我可以使用上述功能更改容器的内容吗?指向的数据会是可变的,但没有别的吗?
c++ - 从迭代器继承
我一直听到的建议是,从标准中的任何内容继承都是不受欢迎的。我应该与它有一个“有”的“不是”的关系。
我认为这对于迭代器来说是不正确的,对吧?iterator
我们必须从我们的样板文件中继承,对吗?
c++ - 谁更快:BOOST_FOREACH 宏或 for
我测试了我的程序,并决定将BOOST_FOREACH
宏更改为简单的for
循环const_iterator
。
我收到了意想不到的结果:使用for
.
然后我写了一个小测试应用程序:
这是输出:
为什么这样?
c++ - 编译器如何知道是否调用 const 重载?
给定string foo
,当我打电话时:
有 2 个重载string::begin
。一个返回一个string::iterator
,另一个返回一个string::const_iterator
。我怎么知道的类型bar
?这只是基于是否foo
存在const
吗?