【发布时间】:2020-08-12 07:56:52
【问题描述】:
我目前正在尝试在 C++ 中使用 std::sort() 对 const char* 向量的向量进行排序。这是我当前的代码:
std::vector<std::vector<const char*>> PlayerManager::GetSortedHighscores()
{
std::vector<std::vector<const char*>> sortedHighscores;
std::fstream hsFileIStream;
hsFileIStream.open("Highscores.csv", std::ios::in);
if (hsFileIStream.fail())
{
return sortedHighscores;
}
std::string line;
while (std::getline(hsFileIStream, line))
{
std::vector<const char*> lineV;
std::stringstream s(line);
std::string data;
while (std::getline(s, data, ','))
{
lineV.push_back(data.c_str());
}
sortedHighscores.push_back(lineV);
}
std::sort(sortedHighscores.begin(), sortedHighscores.end(), CompareRecord);
return sortedHighscores;
}
bool PlayerManager::CompareRecord(std::vector<const char*>& record1, std::vector<const char*>& record2)
{
const int MOVE_INDEX = 3;
return (record1[MOVE_INDEX] < record2[MOVE_INDEX]);
}
但是我收到以下错误:
'PlayerManager::CompareRecord':非标准语法;采用 '&' 创建一个指向成员的指针
'std::sort': 找不到匹配的重载函数
'void std::sort(const _RanIt,const _RanIt)': 期望 2 参数 - 提供 3 个
如果有人能提供帮助,将不胜感激。
【问题讨论】:
标签: c++ sorting pointers stl stdvector