c++ - 声明与“std::vector”不兼容
我的错误heapSort()
:
声明与“std::vector<Comparable, std::allocator<Comparable>> BinaryHeap<Comparable>::heapsort()”不兼容(在第 46 行声明
我
问题描述
我的错误heapSort()
:
声明与“std::vector<Comparable, std::allocator<Comparable>> BinaryHeap<Comparable>::heapsort()”不兼容(在第 46 行声明
我BinaryHeap
在头文件中有一个包含我所有函数声明的类。堆排序是这样的:
template <typename Comparable>
class BinaryHeap
{
public:
...
vector<Comparable> heapsort();
...
private:
...
void heapify(...);
}
我的heapsort()
函数定义:
template <typename Comparable>
void BinaryHeap<Comparable>::heapsort()
{
// Build heap (rearrange array)
for (int i = currentSize / 2 - 1; i >= 0; i--)
heapify(array, currentSize, i);
// One by one extract an element from heap
for (int i = currentSize - 1; i > 0; i--) {
// Move current root to end
swap(array[0], array[i]);
// call max heapify on the reduced heap
heapify(array, i, 0);
}
}
关于我可以做些什么来解决这个问题的任何建议?我所有的其他方法都运行良好,而且我heapsort()
显然在课堂BinaryHeap
上。
AutoHotkey 按 Shift 一次运行
我试图找到一个工作代码,该代码仅在按住任何或所有 WASD 键的同时按下一次并在没有按下任何 WASD 键或再次按下 Shift 时释放。
到目前为止,我设法做到了:
#MaxThreadsPerHotkey 2
Toggle = 0
Shift::
Toggle := !Toggle
If Toggle
Send {Shift Down}
Else
Send {Shift Up}
Return
*w::
Send {w down}
return
*w Up::
Send {w Up}
Send {Shift Up}
return
F12:: Suspend`
以上所有内容都是根据我在网上找到的示例进行编译和推断的,这只是反复试验过程的结果。
如果有人可以帮助我,将不胜感激。
解决方案
您的定义与声明不兼容。
宣言:
vector<Comparable> heapsort();
定义:
void BinaryHeap<Comparable>::heapsort()
你应该决定你的方法应该返回哪种类型,并在你的声明和定义中使用相同的类型。
例如,我认为void
作为返回类型是有意义的(也就是说,该方法不应该返回任何内容)。如果您同意,请修改您的声明:
void heapsort();
但是,也许vector<Comparable>
实际上是正确的返回类型?如果是这样,请修正您的定义:
template <typename Comparable>
vector<Comparable> BinaryHeap<Comparable>::heapsort()
{
...
}
推荐阅读
- php - 微服务客户端循环依赖
- python - 对数据集进行分层,同时避免索引污染?
- c# - C# EF Core Web Api 扩展在实体上为空
- python - 为数据集中的行创建直方图,分类为 1 和 0
- ruby-on-rails - 无法使用 SSL nginx 反向代理在 Rails 6 中验证 CSRF 令牌的真实性
- javascript - 在解构赋值之前声明对象属性类型
- python - 如何在熊猫中保存与特定条件匹配的先前结果
- eclipse-jdt - 使用 AST 删除已实现的接口
- javascript - 运行测试以查看是否显示数字
- vue.js - 在 Nuxt 中为 workbox 动态生成 preCache 文件
我的错误heapSort()
:
声明与“std::vector<Comparable, std::allocator<Comparable>> BinaryHeap<Comparable>::heapsort()”不兼容(在第 46 行声明
我
问题描述
我的错误heapSort()
:
声明与“std::vector<Comparable, std::allocator<Comparable>> BinaryHeap<Comparable>::heapsort()”不兼容(在第 46 行声明
我BinaryHeap
在头文件中有一个包含我所有函数声明的类。堆排序是这样的:
template <typename Comparable>
class BinaryHeap
{
public:
...
vector<Comparable> heapsort();
...
private:
...
void heapify(...);
}
我的heapsort()
函数定义:
template <typename Comparable>
void BinaryHeap<Comparable>::heapsort()
{
// Build heap (rearrange array)
for (int i = currentSize / 2 - 1; i >= 0; i--)
heapify(array, currentSize, i);
// One by one extract an element from heap
for (int i = currentSize - 1; i > 0; i--) {
// Move current root to end
swap(array[0], array[i]);
// call max heapify on the reduced heap
heapify(array, i, 0);
}
}
关于我可以做些什么来解决这个问题的任何建议?我所有的其他方法都运行良好,而且我heapsort()
显然在课堂BinaryHeap
上。
AutoHotkey 按 Shift 一次运行
我试图找到一个工作代码,该代码仅在按住任何或所有 WASD 键的同时按下一次并在没有按下任何 WASD 键或再次按下 Shift 时释放。
到目前为止,我设法做到了:
#MaxThreadsPerHotkey 2
Toggle = 0
Shift::
Toggle := !Toggle
If Toggle
Send {Shift Down}
Else
Send {Shift Up}
Return
*w::
Send {w down}
return
*w Up::
Send {w Up}
Send {Shift Up}
return
F12:: Suspend`
以上所有内容都是根据我在网上找到的示例进行编译和推断的,这只是反复试验过程的结果。
如果有人可以帮助我,将不胜感激。
解决方案
您的定义与声明不兼容。
宣言:
vector<Comparable> heapsort();
定义:
void BinaryHeap<Comparable>::heapsort()
你应该决定你的方法应该返回哪种类型,并在你的声明和定义中使用相同的类型。
例如,我认为void
作为返回类型是有意义的(也就是说,该方法不应该返回任何内容)。如果您同意,请修改您的声明:
void heapsort();
但是,也许vector<Comparable>
实际上是正确的返回类型?如果是这样,请修正您的定义:
template <typename Comparable>
vector<Comparable> BinaryHeap<Comparable>::heapsort()
{
...
}
推荐阅读
- php - 微服务客户端循环依赖
- python - 对数据集进行分层,同时避免索引污染?
- c# - C# EF Core Web Api 扩展在实体上为空
- python - 为数据集中的行创建直方图,分类为 1 和 0
- ruby-on-rails - 无法使用 SSL nginx 反向代理在 Rails 6 中验证 CSRF 令牌的真实性
- javascript - 在解构赋值之前声明对象属性类型
- python - 如何在熊猫中保存与特定条件匹配的先前结果
- eclipse-jdt - 使用 AST 删除已实现的接口
- javascript - 运行测试以查看是否显示数字
- vue.js - 在 Nuxt 中为 workbox 动态生成 preCache 文件