使用大写和小写字母对矢量进行排序

时间:2017-10-04 20:56:37

标签: c++ sorting c++11 vector stl

所以我有一个程序可以读取文件,并使用std::map作为关键字intstd::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;
    }
}

1 个答案:

答案 0 :(得分:0)

  

矢量不能排序大写和小写吗?

没有

std::vector s不排序(只是附加元素)。

std::vector维持插入顺序。

如果您需要插入和订购容器,则应使用std::set(或std::multiset)。