相关疑难解决方法(0)

什么是"Argument-Dependent Lookup"(又名ADL或"Koenig Lookup")?

什么是关于什么参数依赖查找的好解释?很多人也称它为Koenig Lookup.

我最好知道:

  • 为什么这是好事?
  • 为什么这是一件坏事?
  • 它是如何工作的?

c++ c++-faq name-lookup argument-dependent-lookup

163
推荐指数
4
解决办法
3万
查看次数

使用不带前缀"std"的std :: sort(),也没有"using namespace std;" 编译成功

正如sort()其定义namespace std必须始终用作std::sort.但即使没有,下面的代码也能正确编译std.

#include <vector>
#include <algorithm>

int main()
{
    std::vector<int> nums = {4,3,1,7,2,0};
    sort(nums.begin(),nums.end());
}
Run Code Online (Sandbox Code Playgroud)

ideone.com

但是这段代码没有.

#include <array>
#include <algorithm>

int main()
{

    std::array<int,5> nums = {4,1,8,9,6};
    sort(nums.begin(),nums.end());
}
Run Code Online (Sandbox Code Playgroud)

使用gcc 4.8.4with -std=c++11flag启用.

从这两个代码片段中可以清楚地知道std::vector这与此有关.但我无法弄明白.

c++ stdvector

10
推荐指数
1
解决办法
828
查看次数