C++ rcpp中的编译错误

C++ rcpp中的编译错误,c++,rcpp,C++,Rcpp,在Rcpp中编译下面的代码时,在名为stl_algobase.h的文件中出现以下错误: `no type named 'value_type' in 'struct std::iterator_traits<Rcpp::Vector<14, Rcpp::PreserveStorage> >'` `struct std::iterator\u traits'中没有名为'value\u type'的类型` 我使用的是标准类型声明,所以我不清楚值类型哪里不正确 代码如下:

在Rcpp中编译下面的代码时,在名为stl_algobase.h的文件中出现以下错误:

`no type named 'value_type' in 'struct std::iterator_traits<Rcpp::Vector<14, Rcpp::PreserveStorage> >'`
`struct std::iterator\u traits'中没有名为'value\u type'的类型`
我使用的是标准类型声明,所以我不清楚值类型哪里不正确

代码如下:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::plugins(cpp11)]]
#include <cstddef>   // std:size_t
#include <iterator>  // std:begin, std::end
#include <vector>    // std::vector
#include <iostream>
#include <string>

// [[Rcpp::export]]
    bool dupCheckRcpp (const Rcpp::NumericVector vec, const Rcpp::NumericMatrix allMatrix) {
    int i, nrow, ncol;
    bool flag;
    nrow = allMatrix.nrow(); ncol = allMatrix.ncol();
    Rcpp::NumericVector vecTmp(ncol);

    flag = false;
    for (i = 0; i < nrow; ++i) {
      // copy to vector
      vecTmp = allMatrix[i];
      // compare
        if (std::equal(vec.begin(),vec.end(),vecTmp)) {
          flag = true;
          return flag;
          }
    }
    return flag; 
  }
#包括
使用名称空间Rcpp;
//[[Rcpp::插件(cpp11)]]
#包括//标准:尺寸\u t
#包括//标准:开始,标准::结束
#include//std::vector
#包括
#包括
//[[Rcpp::导出]]
bool dupCheckRcpp(常数Rcpp::NumericVector向量向量,常数Rcpp::NumericMatrix allMatrix){
int i、nrow、ncol;
布尔旗;
nrow=allMatrix.nrow();ncol=allMatrix.ncol();
Rcpp::数值向量向量向量向量(ncol);
flag=false;
对于(i=0;i

感谢您的帮助

当您调用
std::equal
时,您需要传递迭代器,而不是整个容器

改变

if (std::equal(vec.begin(),vec.end(),vecTmp)) {


调用
std::equal
时,需要传递迭代器,而不是整个容器

改变

if (std::equal(vec.begin(),vec.end(),vecTmp)) {


这很有帮助,但我还必须通过执行以下R代码来修复环境变量:
Sys.setenv(PATH=“%PATH%;C:/RBuildTools/bin;C:/RBuildTools/gcc-4.6.3/bin”)
这很有帮助,但我还必须通过执行以下R代码来修复环境变量:
Sys.setenv(PATH=%PATH%;C:/RBuildTools/bin;C:/RBuildTools/gcc-4.6.3/bin“