下限(来自C+;+;STL)的结果能否分配给整型变量? 我最近开始使用C++ STL,今天我在代码中尝试了 LoeRyLange函数。但不幸的是,我错了: cannot convert '__gnu_cxx::__normal_iterator<long long int*, std::vector<long long int> >' to 'long long int' in assignment|

下限(来自C+;+;STL)的结果能否分配给整型变量? 我最近开始使用C++ STL,今天我在代码中尝试了 LoeRyLange函数。但不幸的是,我错了: cannot convert '__gnu_cxx::__normal_iterator<long long int*, std::vector<long long int> >' to 'long long int' in assignment|,c++,stl,C++,Stl,请告诉我哪里出了问题 注意:lli表示已使用宏定义的long-long-int 如果您需要任何澄清,请询问。不,您不能将迭代器指定给整数变量 lower_bound(gum.begin() + i, gum.end(), K - gum[i]) - (gum.begin() + i); 将返回std::vector::difference\u type 在您的情况下,您能做的最好的事情是: paths = paths + (lower_bound(v.begin(),v.begin()+i-1

请告诉我哪里出了问题

注意:
lli
表示已使用宏定义的
long-long-int


如果您需要任何澄清,请询问。

不,您不能将迭代器指定给整数变量

lower_bound(gum.begin() + i, gum.end(), K - gum[i]) - (gum.begin() + i);
将返回
std::vector::difference\u type

在您的情况下,您能做的最好的事情是:

paths = paths + (lower_bound(v.begin(),v.begin()+i-1,v[i]-k) - v.begin());

不,它不会将迭代器赋给整变量。仔细阅读并匹配括号。您的代码没有编译-看起来您缺少了一些typedef以及通常的include和main()函数。
lower_bound(gum.begin() + i, gum.end(), K - gum[i]) - (gum.begin() + i);
paths = paths + (lower_bound(v.begin(),v.begin()+i-1,v[i]-k) - v.begin());