问题遇到的现象和发生背景
vector里面存string字符串,我想用sort把里面的字符串按照字母序进行排序,发现好像不可行,怎么做才是正确的
问题相关代码,请勿粘贴截图
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
const int maxn = 3000;
vector<vector<string> > hashTable(maxn);
int main()
{
int n, k;
int No, num, temp;
scanf("%d %d", &n, &k);
for (int i = 0; i < n; i++) {
string name;
scanf("%s %d", name.c_str(), &num);
for (int j = 0; j < num; j++) {
scanf("%d", &temp);
hashTable[temp].push_back(name);
}
}
for (int i = 1; i <= k; i++) {
printf("%d %d\n", i, hashTable[i].size());
sort(hashTable[i].begin(), hashTable[i].end());
for (int j = 0; j < hashTable[i].size(); j++) {
printf("%s\n", hashTable[i][j].c_str());
}
}
return 0;
}
运行结果及报错内容
正确的顺序是这样:

而我的却是这样,好像sort根本就没有起作用:

我想要达到的结果
为什么sort没有将vector里面的字符串按照字母序进行排序呢,怎么做才是正确的?
