草庐IT

find_stuff

全部标签

c++ - 为什么 std::find for vector 返回一个迭代器而不是整数位置

为什么vector查找返回的是迭代器而不是整数值?vector::iteratoritr1=std::find(words.begin(),words.end(),word); 最佳答案 std::find适用于各种容器,而不仅仅是std::vector。例如,它适用于std::list但该容器不允许通过索引访问元素(至少不容易)。为了让它与所有类型的容器一起工作,它需要返回所有容器都能理解的东西,一个迭代器。编辑:如果你想找到相当于给定迭代器的索引位置,你可以使用std::distance.例如:std::distance(std

android - 如何解决 : "error: cannot find symbol class ..." after converting Java class to Kotlin?

我正在尝试从Kotlin开始,将我项目的一些Java类转换为Kotlin,并创建一个混合的Java/Kotlin项目。为了配置环境,我做了以下操作:已下载最新版Kotlin插件(1.0.2);在顶层gradle.plugin我添加了:classpath"org.jetbrains.kotlin:kotlin-android-extensions:1.0.2"在依赖项部分;在我的模块的gradle插件中,我在依赖项部分添加了:compile"org.jetbrains.kotlin:kotlin-stdlib:1.0.2";我选择了我想转换为kotlin的POJO类,从菜单Code->C

android - 如何解决 : "error: cannot find symbol class ..." after converting Java class to Kotlin?

我正在尝试从Kotlin开始,将我项目的一些Java类转换为Kotlin,并创建一个混合的Java/Kotlin项目。为了配置环境,我做了以下操作:已下载最新版Kotlin插件(1.0.2);在顶层gradle.plugin我添加了:classpath"org.jetbrains.kotlin:kotlin-android-extensions:1.0.2"在依赖项部分;在我的模块的gradle插件中,我在依赖项部分添加了:compile"org.jetbrains.kotlin:kotlin-stdlib:1.0.2";我选择了我想转换为kotlin的POJO类,从菜单Code->C

c++ - find() 使用重载运算符==

我尝试使用重载运算符==()在vector中查找元素。但是,如果在以下代码中使用type1,则输出为1和0(未找到)。使用type2同时给出1和1。环境是Xubuntu12.04和g++版本4.6.3。#include#include#includeusingnamespacestd;typedefpairtype1;structtype2:publictype1{};#defineTYPEtype1booloperator==(constTYPE&lhs,constTYPE&rhs){returnlhs.first==rhs.first;}intmain(){vectorvec;TY

c++ - 将多个字符串传递给 string::find 函数

是否可以通过某种方式将多个字符串传递给string::find函数?例如,要查找一个字符串,我可能会使用这个:str.find("astring");我想做的是这样的:str.find("astring"||"anotherstring"||"yetanotherstring")并让函数返回三个字符串中任何一个第一次出现的位置。感谢您的任何建议。 最佳答案 不适用于std::string::find,但你可以使用std::find_if来自:std::stringstr("astring");std::arraya{"astring

c++ - 搜索空字符串时 find vs find_first_of

在STL中,当我执行s.find("")时,它返回0而s.find_first_of("")返回-1(npos)。造成这种差异的原因是什么? 最佳答案 s.find(t)查找子字符串t在s中的第一次出现。如果t为空,则该事件出现在s的开头,并且s.find(t)将返回0。s.find_first_of(t)在t中查找第一次出现的一个字符。如果t为空字符串,则t中没有字符,所以找不到匹配项,find_first_of将返回npos.Liveonideone. 关于c++-搜索空字符串时fi

c++ - 是否可以在 linux 中使用 "man std::find"?

我正在使用Ubuntu,并且已经安装了libstdc++6-4.7-doc。但似乎man只适用于类,例如$manstd::vector$manstd::istream有效,但是$manstd::find不起作用,有什么想法吗?提前致谢!修改:在安装libstdc++???-doc之后我们可以使用file:///usr/share/doc/gcc-4.7-base/libstdc++/html/index.html访问文档。 最佳答案 当您尝试man[something]时,您只是调出该项目的手册页(基于“man”二进制文件的工作方式

c++ - 为什么 std::find_if(first, last, p) 不通过引用获取谓词?

我正在查看std::find_ifoncppreference.com,的各种签名我注意到采用谓词函数的flavors似乎按值接受它:templateInputItfind_if(InputItfirst,InputItlast,UnaryPredicatep);如果我理解正确的话,具有捕获变量的lambda会为其数据的引用或拷贝分配存储空间,因此“按值传递”可能意味着为调用复制了捕获数据的拷贝。另一方面,对于函数指针等可直接寻址的东西,如果直接传递函数指针,性能应该会更好,而不是通过引用到指针(pointer-to-pointer)。首先,这是正确的吗?上面的UnaryPredica

c++ - VS2010 : "Cannot find the resource compiler DLL. Please make sure the path is correct."

我一直在关注theForger'swin32APItutorial,然后我决定打开menu_one.rc文件以从VS2010中查看其内容,但我收到此错误:我已经仔细检查了这两个位置,但实际上这两个文件都不存在。我仅有的rcdll.dll拷贝位于:C:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v7.0A\Bin\rcdll.dllandC:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v7.0A\Bin\x64\rcdll.dll我试过做repairinstalloftheWindowsSDK,但这并没有解决问题

c++ - 为什么将不存在的键应用于 map::find 会在 C++ 中返回具有第一个值映射大小的迭代器?

我有一个类似下面代码片段的用例,在getter返回的映射中使用map::find来查找不存在的键实际上会找到一个迭代器,其第一个值是map(可能),因此不会像预期的那样运行,等于map::end这可能是因为我的map是getter返回的map。并在不将其分配给变量的情况下使用了map。这样getter返回值可能已经被立即销毁了。那么如果我的猜测是正确的呢?为什么它返回map的大小而不是它的结束迭代器?#include#includeclassB{longlongid_;public:B()=default;explicitB(longlong);~B()=default;};B::B(