【发布时间】:2018-12-31 03:21:03
【问题描述】:
这是不允许的吗?谁能解释一下原因?
算法.h
namespace Algorithms
{
int kthLargest(std::vector<int> const& nums, int k);
}
算法.cpp
#include "Algorithms.h"
namespace
{
int kthLargest(std::vector<int> const& nums, int start, int end, int k)
{
<implementation>
}
} // end anonymous namespace
namespace Algorithms
{
int kthLargest(std::vector<int> const& nums, int k)
{
return kthLargest(nums, 0, nums.size() - 1, k);
}
} // end Algorithms namespace
我遇到的错误是:
> /usr/bin/c++ -I../lib/algorithms/inc -MD -MT
> lib/algorithms/CMakeFiles/algorithms.dir/src/Algorithms.o -MF
> lib/algorithms/CMakeFiles/algorithms.dir/src/Algorithms.o.d -o
> lib/algorithms/CMakeFiles/algorithms.dir/src/Algorithms.o -c
> ../lib/algorithms/src/Algorithms.cpp
> ../lib/algorithms/src/Algorithms.cpp: In function ‘int
> Algorithms::kthLargest(const std::vector<int>&, int)’:
> ../lib/algorithms/src/Algorithms.cpp:70:50: error: too many arguments
> to function ‘int Algorithms::kthLargest(const std::vector<int>&, int)’
> return kthLargest(nums, 0, nums.size() - 1, k);
【问题讨论】:
-
注意std有
std::nth_element。
标签: c++ namespaces overloading name-lookup