不同标题中的upper_bound和lower_bound?

时间:2016-06-30 21:42:26

标签: c++ c++-standard-library

lower_bound不会出现任何错误,但upper_bound会出错。在搜索时,它出现在<algorithm>头文件中。

为什么不一致?会很有趣。

C ++代码:

#include <iostream>                                                
#include <vector>     
using namespace std;                                               
int main() {                                                       
    vector<int> ans={1,5,7,8};                                     
    cout<< upper_bound(ans.begin(), ans.end(), 16) -ans.begin() <<endl;
    cout<< lower_bound(ans.begin(), ans.end(), 16) -ans.begin() <<endl;
    return 0;                                                      
}     

输出:

/tmp/a.cpp: In function ‘int main()’:
/tmp/a.cpp:7:50: error: ‘upper_bound’ was not declared in this scope
     cout<< upper_bound(ans.begin(), ans.end(), 16) <<endl;

修改

$ g++ -v
gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2) 

1 个答案:

答案 0 :(得分:0)

当您包含任何std标头时,可以导入std中的任何和所有符号。

基本上,您可以保证所要求的标题中的符号可用。额外的可以来。

所以这符合要求。