所以我有一个程序可以读取文件,并使用std::map
作为关键字int
和std::vector
作为值来获取最大的字词。我需要打印出最大的单词,但排序有问题。而输出应该是Copyright,Publishin,Universal,blueprint
我得到:蓝图,版权,环球,Publishin
我该如何解决这个问题?矢量不排序大写和小写? 这是我到目前为止所做的:
string temp;
stringstream ss(line);
while(ss >> temp) {
int wordlength = temp.length();
wordit = wordbycount.find(wordlength);
if (wordit != wordbycount.end()) {
vector<string> arrayofLongest = wordit->second;
std::vector<string>::iterator iterator1 = find(arrayofLongest.begin(), arrayofLongest.end(), temp);
if (iterator1 == arrayofLongest.end()) {
wordit->second.push_back(temp);
}
}
else {
wordbycount[wordlength] = temp;
}
}
答案 0 :(得分:0)
矢量不能排序大写和小写吗?
没有
std::vector
s不排序(只是附加元素)。
std::vector
维持插入顺序。
如果您需要插入和订购容器,则应使用std::set
(或std::multiset
)。