Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C++;?_C++_Sorting - Fatal编程技术网

C++ 如何在C++;?

C++ 如何在C++;?,c++,sorting,C++,Sorting,我正在中使用std::sort函数。我想使用如下示例: // using default comparison (operator <): std::sort (myvector.begin(), myvector.begin()+4); std::sort(newTuples->begin(), newTuples->end()); 其中,newTuples为 std::vector<Tuple>* 问题是,当我尝试在XCode中构建时,会出现如下错

我正在
中使用std::sort函数。我想使用如下示例:

// using default comparison (operator <):
   std::sort (myvector.begin(), myvector.begin()+4); 
std::sort(newTuples->begin(), newTuples->end());
其中,
newTuples

std::vector<Tuple>*
问题是,当我尝试在XCode中构建时,会出现如下错误:

哪个代码段在

它为我提供了各种堆栈跟踪,其中一行为我提供了以下信息:

哪个代码段在我的
Tuple.h
文件中

我不知道还能做什么!任何帮助都是非常感谢的,因为我的CS类项目现在已经晚了3天,因为我想不出最后的排序算法。我已经用关系和关系操作select、project和rename实现了一个关系数据库管理系统。我有这些元组正确的格式,他们只需要按顺序排序。谢谢

编辑:

因此,我按照答案中的建议更改了声明,但现在它给了我:


有什么帮助吗?

您需要一个操作符来比较
const Tuple*
const Tuple*
。在Tuple类中声明:

friend bool operator<(const Tuple*, const Tuple*);

friend bool操作符您需要一个将
const Tuple*
const Tuple*
进行比较的操作符。在Tuple类中声明:

friend bool operator<(const Tuple*, const Tuple*);

friend bool操作符将
元组
元组*

bool const Tuple::operator<(Tuple * tup1)

bool const Tuple::operator这将
Tuple
Tuple*

bool const Tuple::operator<(Tuple * tup1)


bool const Tuple::operator因为你有一个指针向量,它将对指针进行排序。这是一个输入错误。最初它是一个指针向量,所以我将它复制到一个新的向量(因此命名为newTuples),它是
Tuple
,而不是
Tuple*
。但是谢谢!因为你有一个指针向量,它将对指针进行排序。这是一个打字错误。最初它是一个指针向量,所以我将它复制到一个新的向量(因此命名为newTuples),它是
Tuple
,而不是
Tuple*
。但是谢谢@Tushar,函数定义末尾的
const
没有任何意义,因为它不是成员函数。derp…仍在查看上面的成员函数。@Tushar,函数定义末尾的
const
没有任何意义,因为它不是成员函数。derp…仍在查看上面的成员函数。我实现了您的建议。请参阅上面的“编辑”,了解它给我带来的新错误。问题是其他函数确实使用at(int)方法来修改它,所以我不能让它保持不变…我对我的
size()
函数做了相同的
const
更改,它工作了。但是关于
at(int)
function?@ejsuncy,这意味着这些错误中提到的函数也是不正确的。使它们成为
const
。即使我在其他上下文中使用函数
const
来进入并修改它返回的内容,我也可以创建函数吗?@ejsuncy此站点与对话不兼容。我认为这个问题会成为一个很好的新帖子。祝你好运我执行了你的建议。请参阅上面的“编辑”,了解它给我带来的新错误。问题是其他函数确实使用at(int)方法来修改它,所以我不能让它保持不变…我对我的
size()
函数做了相同的
const
更改,它工作了。但是关于
at(int)
function?@ejsuncy,这意味着这些错误中提到的函数也是不正确的。使它们成为
const
。即使我在其他上下文中使用函数
const
来进入并修改它返回的内容,我也可以创建函数吗?@ejsuncy此站点与对话不兼容。我认为这个问题会成为一个很好的新帖子。祝你好运
bool Tuple::operator<( const Tuple &tup1 ) const