我正在为高性能计算/超级计算机应用程序设计一个非常有效的迭代器。我想知道std::reverse_iterator
适配器是否会引入一些开销,或者它是否可能编译并实现与它应用的迭代器类型完全相同的性能。
答案 0 :(得分:1)
谈到表现时,不要猜,不要问,衡量。并且不用人工小测试程序来衡量。使用真实代码,真实应用程序,真实目标机器上的真实数据来测量速度。
C ++作为一种语言并不能保证std::reverse_iterator
是否引入了开销。如果您至少告诉我们您正在使用哪个编译器和哪些编译器选项,那么这个问题会更有问题,因为标准库工具的性能(算法复杂性要求除外)是一个实施质量(QoI)问题。你不太可能在std::reverse_iterator
中遇到性能上的差异,但谁知道呢?
您还没有告诉我们您想要适应的底层迭代器的任何信息。例如,它可能是自定义容器的迭代器,并且--
和++
具有不同的性能特征。