继我们的快速讨论之后,这里有一个
false
.
代码
#include <Rcpp.h>
// [[Rcpp::export]]
bool contains(std::vector<std::string> sv, std::string txt) {
for (auto s: sv) {
if (s == txt) return true;
}
return false;
}
/*** R
sv <- c("a", "b", "c")
contains(sv, "foo")
sv[2] <- "foo"
contains(sv, "foo")
*/
> Rcpp::sourceCpp("~/git/stackoverflow/66895973/answer.cpp")
> sv <- c("a", "b", "c")
> contains(sv, "foo")
[1] FALSE
> sv[2] <- "foo"
> contains(sv, "foo")
[1] TRUE
>
这实际上只是在寻找我们可能已经拥有的(大约)10万行Rcpp或者STL可能拥有的东西之前从臀部开始拍摄。。。
同样的方法也适用于前面的命名属性示例,当然,对于
CharacterVector
,和/或使用从它到
std::vector<std::string>
我们以前在这里,或者。。。如果您有一个旧的编译器,请切换
for