多个模板化函数交互
Multiple templated functions interact
我一直无法让我的findNth
模板化函数使用我的辅助函数quicksort
。我一直得到"使用未声明的标识符'快速排序'",就好像没有匹配的函数调用一样。知道发生了什么吗?
#ifndef ORDER
#define ORDER
#include <vector>
#include <utility>
template<typename T,typename C>
T &findNth(std::vector<T> &data,int index,const C &comp){
quicksort(&data, 0, data.size()-1);
return data[index];
}
这是我的快速排序功能。
template<typename T,typename C>
void quicksort(std::vector<T> &data, int lo, int hi){
if(lo < hi){
int p = partition(data, lo, hi);
quicksort(data, lo, p - 1);
quicksort(data, p + 1, hi);
}
}
所有其他快速排序帮助程序函数都已编写完成,但据我所知,并没有造成任何问题。
一旦你修复了订单,你仍然有一个问题C
是不可扣除的,也没有提供(和未使用的BTW)。因此,将您的quicksort
转换为以下内容:
template<typename T>
void quicksort(std::vector<T> &data, int lo, int hi);
或:
template<typename T, typename C>
void quicksort(std::vector<T> &data, int lo, int hi, const C&c);
您是否在 findN 之前声明了快速排序函数?
:#ifndef ORDER
#define ORDER
template<typename T, typename C>
void quicksort(std::vector<T> &data, int lo, int hi) {
// your code here
}
template<typename T,typename C>
T &findNth(std::vector<T> &data,int index,const C &comp) {
// your code here
}
否则,编译器在调用时不知道快速排序。
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 函数-本地枚举声明和 ADL 的交互
- C++ 和 Lua 函数之间的交互与 3D 矢量参数
- C++ 函数中两个类之间的交互
- Qt/VTK:访问自定义交互器类中的函数
- c++11 std::thread 和类友元函数之间的交互
- 多个模板化函数交互
- Lua/C++/luabind /与其他 lua 行为脚本交互中成员函数的执行延迟
- WriteFile函数如何与磁盘上的另一个数据交互
- C++ 为什么此函数不会切换此交互器值
- c++指针指向函数和void指针的交互导致奇怪的事情
- 构造函数委托如何与非静态数据成员初始化交互
- 如何从Windows Service主函数启动c++本地应用程序(应用程序与控制台交互)?
- 如何使函数与其他c++之间的类变量交互
- 我的函数不会交互.否则它不会返回值
- 通过c++与操作系统函数交互
- 指针和函数交互导致的c++错误