问题标签 [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.

0 投票
11 回答
14996 浏览

c++ - const_iterators 更快吗?

我们的编码指南更喜欢const_iterator,因为它们比普通的要快一些iterator。似乎编译器在您使用const_iterator.

这真的正确吗?如果是,那么在内部真正发生了什么使const_iterator速度更快?

编辑:我写了一个小测试来检查const_iteratorvsiterator并发现了不同的结果:

迭代 10,000 个对象所需const_terator的时间减少了几毫秒(大约 16 毫秒)。但并非总是如此。有一些迭代是相等的。

0 投票
10 回答
26664 浏览

c++ - 如何删除 const_iterator 的常量?

作为这个问题的延伸更快吗const_iterators,我还有一个问题const_iterators。如何删除 a 的常量const_iterator?尽管迭代器是指针的广义形式,但仍然const_iteratoriterators 是两个不同的东西。因此,我相信,我也不能使用const_cast<>to 转换 from const_iteratorto iterators。

一种方法可能是您定义一个迭代器,它将元素移动到哪个const_iterator点。但这看起来是一个线性时间算法。

关于实现这一目标的最佳方法的任何想法?

0 投票
6 回答
11958 浏览

c++ - 我应该更喜欢迭代器而不是 const_iterators 吗?

这里有人最近提到Scott Meyers 的文章说:

  • 更喜欢iteratorspdf链接const_iterators)。

其他人评论说这篇文章可能已经过时了。我想知道你的意见是什么?

这是我的:这篇文章的主要观点之一是你不能在 a 上擦除或插入const_iterator,但我认为用它作为反对const_iterators. 我认为const_iterators它的全部意义在于您根本不修改范围,既不是通过替换它们的值来修改元素本身,也不是通过插入或擦除来修改范围。还是我错过了什么?

0 投票
3 回答
9452 浏览

c++ - C++:如何写一个 const_iterator?

我用迭代器编写了自己的容器模板。如何实现 const_iterator?

0 投票
4 回答
3600 浏览

c++ - 恒定的正确性

在 printMessage 中,如果您使用索引访问常量类的向量,它可以正常工作,但不能使用迭代器 (*itr)。如果迭代器被声明为 constant_iterator 那么它工作正常。

为什么?

在这两种情况下,我都在读取数据而不是修改向量。有人可以阐明一下吗?

0 投票
3 回答
10790 浏览

c++ - 自己的容器类的 C++ 迭代器和 const_iterator 问题

我正在编写一个自己的容器类并且遇到了一个我无法理解的问题。这是显示问题的简单示例。

它由一个容器类和两个测试类组成:一个使用 std:vector 的测试类可以很好地编译,第二个测试类尝试以完全相同的方式使用我自己的容器类,但编译失败。

gcc 告诉我:

test2.C:在成员函数'void TestClassMyContainer::test()'中:

test2.C:51:错误:请求从“MyContainer::iterator”转换为非标量类型“MyContainer::const_iterator”

我不确定编译器在哪里以及为什么要将迭代器转换为我自己的类的 const_iterator,而不是 STL 向量类。我究竟做错了什么?

0 投票
9 回答
236548 浏览

c++ - 如何正确实现自定义迭代器和 const_iterators?

我有一个自定义容器类,我想为其编写iteratorconst_iterator类。

我以前从未这样做过,也没有找到合适的方法。关于迭代器创建的指导方针是什么,我应该注意什么?

我还想避免代码重复(我觉得const_iteratoriterator分享了很多东西;一个应该继承另一个吗?)。

脚注:我很确定 Boost 可以缓解这种情况,但由于许多愚蠢的原因,我不能在这里使用它。

0 投票
5 回答
1819 浏览

c++ - 具有 max_element 和迭代器的 c++ 函数 = 慢 3 倍

当我调用以下函数时,我正在开发的程序会慢三倍。如果它没有被调用几百万次,那还不错。

periodos取值 500。是否有另一种方法可以显着加快此功能?

路易斯

0 投票
3 回答
131820 浏览

c++ - const_iterator 和迭代器有什么区别?

关于 STL 内部的实现,这两者之间有什么区别。性能有什么区别?我想当我们以“只读方式”遍历向量时,我们更喜欢const_iterator,对吧?

谢谢你。

0 投票
6 回答
194 浏览

language-agnostic - 迭代的东西是如何调用的?

我想表达一个迭代器是 const 的(即你不能增加或减少它)但它产生的东西是非常量的:

如果iterator是一个指针,我可以说:

指针 // 迭代器

pointee // 它产生的东西

但如果它不是指针,我不确定。我考虑过使用container“pointee”替代品,但迭代器根本不绑定到容器。例如,输入迭代器可以绑定到文件或 STDIN。以下内容是否有效并被其他人使用?

迭代器 // 迭代器

iteratoo // 它产生的东西

我很高兴得到任何指导!