如何知道哪个头由Visual Studio声明指定的函数?

时间:2017-11-17 13:41:41

标签: visual-studio

我有这样的代码

#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;
    }

我想知道我(iostreamvectoralgorithm)包含哪个标头声明了函数less。当然,我们可以使用 Google 进行搜索。但我的意思是,我想通过 Visual Studio 来了解这些信息。有可能的?我不知道该怎么做。我可以按F12来了解标题less中的xstddef,但我不知道哪个标题(iostreamvector或{{1 }})包括algorithm。任何人都可以告诉我什么吗?

ps:实际上我知道xstddef标题中的less。但请注意我的代码没有<functional>。但它也可以正常运行。我认为其中一个three header必须包含它。但我不知道它是哪个

2 个答案:

答案 0 :(得分:2)

您的第一份工作是删除using namespace std;。然后在使用时很明显使用C ++标准库函数std::less

然后,您可以查阅您最喜欢的C ++标准参考手册,了解所需的#include。使用std::less要求您#include <functional>

您未包含该文件这一事实意味着您依赖其他标头来包含该文件。严格来说,这意味着你没有编写可移植的C ++。

在Visual Studio中,您可以在右键单击时搜索功能。但是要准备等待一段时间,并且还要注意它们可能不会出现在C ++标准所说的位置:只要你可以通过包含std::less来达到<functional>,实现就可以了几乎可以在任何地方运作。

参考:http://en.cppreference.com/w/cpp/utility/functional/less

答案 1 :(得分:0)

您可以使用 show include 标记来查看包含每个标题的文件