草庐IT

reverse-lookup

全部标签

c# - 在 C# 中编写 C++ std::reverse 等效项的最接近方法是什么?

reverseC++标准库中的算法等同于templatevoidreverse(BidirectionalIteratorfirst,BidirectionalIteratorlast){while((first!=last)&&(first!=--last)){std::iter_swap(first,last);++first;}}根据http://www.cplusplus.com/reference/algorithm/reverse/.我想用C#编写等价物:publicvoidReverse(Tfirst,Tlast){//...}首先,你如何传入两个对IEnumerator

c++ - 什么是 "Argument-Dependent Lookup"(又名 ADL,或 "Koenig Lookup")?

关于什么是参数依赖查找有哪些好的解释?许多人也将其称为KoenigLookup。最好我想知道:为什么这是一件好事?为什么这是一件坏事?它是如何运作的? 最佳答案 Koenig查找,或ArgumentDependentLookup,描述了编译器如何在C++中查找非限定名称。C++11标准§3.4.2/1指出:Whenthepostfix-expressioninafunctioncall(5.2.2)isanunqualified-id,othernamespacesnotconsideredduringtheusualunquali

c++ - 无法将 boost 库连接到我的项目 "symbol lookup error"

我有以下情况:我已经创建了动态库lib.so。这个库使用了另一个静态库lib.a。它们都使用Boost库(我将它们链接到CMake文件中)。(我在Java项目中使用了这个动态库)这是lib.so中file.cpp的代码,从lib.a调用getFilesFromDirectory()#include"DrawingDetector.h"#include"../../DrawingDetection.h"#include#includeusingnamespacestd;JNIEXPORTvoidJNICALLJava_DrawingDetector_detectImage(JNIEnv*

c++ - 如何在 C++ 中通过内置的 reverse() 函数存储反转的字符串

这个问题在这里已经有了答案:Howtoreverseanstd::string?[duplicate](2个答案)关闭7年前。如何在c++中使用内置函数反转字符串(不是字符数组)。我需要存储原始拷贝和反转的拷贝,以便我可以比较他们平等。请让我知道如何做到这一点

c++ - `reverse_iterator`的限制原因

关于thecppreferencepageofreverse_iterator我发现以下评论std::reverse_iteratordoesnotworkwithiteratorsthatreturnareferencetoamemberobject(so-called"stashingiterators").Anexampleofstashingiteratorisstd::filesystem::path::iterator.这种说法正确吗?而且,如果是,那是为什么?对我来说,限制是没有意义的,因为我假设反向迭代器基本上交换了operator++和operator--(并存储底层

c++ - MFC CArray 上的 std::reverse

我有一系列这样的点:CArraypoints;我需要颠倒点的顺序。我试过这个方法:std::reverse(&points[0],&points[0]+points.GetSize());而且它有效。然后我尝试了另一种方法:std::reverse(&points[0],&points[points.GetUpperBound()]);但它不起作用:最后一项的排序不正确。为什么? 最佳答案 这是因为STL算法采用[b,e)形式的范围(即e除外),而thefunctionyouusedreturnsthepositionofthela

c++ - 设置/清除位 : bitshift or bitmask lookup?

我正在研究基于位板的国际象棋引擎,其中一项大量执行的操作是设置/清除无符号64位整数中的位。由于我不太了解哪些代码可以在某些处理器上“更快”地运行,因此我无法完全理解这一点。设置和清除位是一个非常简单的操作,但我应该使用(设置):uint64_tbitboard|=1ULL或:uint64_tbitboard|=BITMASK[index];其中BITMASK[]是一些预先计算的整数数组,其中恰好设置了一位(在index处)。乍一看,位移位似乎是明显更快的选择,因为位移位总是比内存查找快。但在国际象棋引擎的上下文中,可能会大量执行此操作,因此将查找表存储在处理器的缓存中是有意义的,这可

c++ - 编程语言理念 : Avoiding vtable lookups

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。一段时间以来,我一直在考虑一种编程语言的想法:它在语法上基本上是C++和Java类的,用于系统编程(或者实际上任何需要高性能的编程),但是,在我看来,这是一种比C++更有趣的语法。我在考虑如何处理分层类结构中的虚拟方法(我的语言不包括多重继承),以及避免vtable查找的方法。我的问题是双重的:据我了解,vtable查找如此影响性能的原因(至少在游戏开发等时间紧迫的场景中)是因为它需要引用对象vt

c++ - 自定义双向迭代器的 reverse_iterator 上的 for_each 需要 OutputIterator

我创建了一个简单的不可变双向迭代器:#include#include#include#include#includeclassmy_iterator:publicstd::iterator{intd_val;public:my_iterator():d_val(0){}my_iterator(intval):d_val(val){}my_iteratoroperator--(int){d_val--;returnmy_iterator(d_val+1);}my_iterator&operator--(){d_val--;return*this;}my_iteratoroperator+

c++ - 为什么 reverse_iterator 有一个默认的构造函数?

我刚刚学习STL,reverse_iterator让我感到困惑。它有一个默认构造函数,但我不知道如何使用它。我试过:reverse_iteratorr{};r--;然后程序崩溃了。我认为这种用法没有意义,而且很容易导致崩溃,那么为什么允许使用默认构造函数呢? 最佳答案 std::reverse_iterator是bidirectionaliterators,它们有一个明确的要求,即它们是可默认构造的。至于whybidirectionaliteratorsaredefault-constructible,这主要是因为几乎可以肯定它们实