问题标签 [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_iterators 更快吗?
我们的编码指南更喜欢const_iterator
,因为它们比普通的要快一些iterator
。似乎编译器在您使用const_iterator
.
这真的正确吗?如果是,那么在内部真正发生了什么使const_iterator
速度更快?
编辑:我写了一个小测试来检查const_iterator
vsiterator
并发现了不同的结果:
迭代 10,000 个对象所需const_terator
的时间减少了几毫秒(大约 16 毫秒)。但并非总是如此。有一些迭代是相等的。
c++ - 如何删除 const_iterator 的常量?
作为这个问题的延伸更快吗?const_iterators
,我还有一个问题const_iterators
。如何删除 a 的常量const_iterator
?尽管迭代器是指针的广义形式,但仍然const_iterator
和iterator
s 是两个不同的东西。因此,我相信,我也不能使用const_cast<>
to 转换 from const_iterator
to iterator
s。
一种方法可能是您定义一个迭代器,它将元素移动到哪个const_iterator
点。但这看起来是一个线性时间算法。
关于实现这一目标的最佳方法的任何想法?
c++ - C++:如何写一个 const_iterator?
我用迭代器编写了自己的容器模板。如何实现 const_iterator?
c++ - 恒定的正确性
在 printMessage 中,如果您使用索引访问常量类的向量,它可以正常工作,但不能使用迭代器 (*itr)。如果迭代器被声明为 constant_iterator 那么它工作正常。
为什么?
在这两种情况下,我都在读取数据而不是修改向量。有人可以阐明一下吗?
c++ - 自己的容器类的 C++ 迭代器和 const_iterator 问题
我正在编写一个自己的容器类并且遇到了一个我无法理解的问题。这是显示问题的简单示例。
它由一个容器类和两个测试类组成:一个使用 std:vector 的测试类可以很好地编译,第二个测试类尝试以完全相同的方式使用我自己的容器类,但编译失败。
gcc 告诉我:
test2.C:在成员函数'void TestClassMyContainer::test()'中:
test2.C:51:错误:请求从“MyContainer::iterator”转换为非标量类型“MyContainer::const_iterator”
我不确定编译器在哪里以及为什么要将迭代器转换为我自己的类的 const_iterator,而不是 STL 向量类。我究竟做错了什么?
c++ - 如何正确实现自定义迭代器和 const_iterators?
我有一个自定义容器类,我想为其编写iterator
和const_iterator
类。
我以前从未这样做过,也没有找到合适的方法。关于迭代器创建的指导方针是什么,我应该注意什么?
我还想避免代码重复(我觉得const_iterator
并iterator
分享了很多东西;一个应该继承另一个吗?)。
脚注:我很确定 Boost 可以缓解这种情况,但由于许多愚蠢的原因,我不能在这里使用它。
c++ - 具有 max_element 和迭代器的 c++ 函数 = 慢 3 倍
当我调用以下函数时,我正在开发的程序会慢三倍。如果它没有被调用几百万次,那还不错。
periodos
取值 500。是否有另一种方法可以显着加快此功能?
路易斯
c++ - const_iterator 和迭代器有什么区别?
关于 STL 内部的实现,这两者之间有什么区别。性能有什么区别?我想当我们以“只读方式”遍历向量时,我们更喜欢const_iterator
,对吧?
谢谢你。
language-agnostic - 迭代的东西是如何调用的?
我想表达一个迭代器是 const 的(即你不能增加或减少它)但它产生的东西是非常量的:
如果iterator
是一个指针,我可以说:
指针 // 迭代器
pointee // 它产生的东西
但如果它不是指针,我不确定。我考虑过使用container
“pointee”替代品,但迭代器根本不绑定到容器。例如,输入迭代器可以绑定到文件或 STDIN。以下内容是否有效并被其他人使用?
迭代器 // 迭代器
iteratoo // 它产生的东西
我很高兴得到任何指导!