我有这样的代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
vector<int> values = { 5,3,4,6 };
sort(values.begin(), values.end(), less<>());
for_each(values.begin(), values.end(), [](int i) {cout << i <<endl; });
return 0;
}
我想知道我(iostream
,vector
或algorithm
)包含哪个标头声明了函数less
。当然,我们可以使用 Google 进行搜索。但我的意思是,我想通过 Visual Studio 来了解这些信息。有可能的?我不知道该怎么做。我可以按F12
来了解标题less
中的xstddef
,但我不知道哪个标题(iostream
,vector
或{{1 }})包括algorithm
。任何人都可以告诉我什么吗?
ps:实际上我知道xstddef
标题中的less
。但请注意我的代码没有<functional>
。但它也可以正常运行。我认为其中一个three header必须包含它。但我不知道它是哪个
答案 0 :(得分:2)
您的第一份工作是删除using namespace std;
。然后在使用时很明显使用C ++标准库函数std::less
。
然后,您可以查阅您最喜欢的C ++标准参考手册,了解所需的#include
。使用std::less
要求您#include <functional>
。
您未包含该文件这一事实意味着您依赖其他标头来包含该文件。严格来说,这意味着你没有编写可移植的C ++。
在Visual Studio中,您可以在右键单击时搜索功能。但是要准备等待一段时间,并且还要注意它们可能不会出现在C ++标准所说的位置:只要你可以通过包含std::less
来达到<functional>
,实现就可以了几乎可以在任何地方运作。
答案 1 :(得分:0)
您可以使用 show include 标记来查看包含每个标题的文件