a.在列表中存储5个名称。允许用户输入每个名称。
B.按字母升序对列表进行排序,并打印列表。c.将列表按字母顺序降序排序,并打印列表。
d.确保您的代码可以在没有bug或错误的情况下执行。
我卡在排序列表中的降序请帮助:(
下面是我的升序源代码。
#include <iostream>
#include <set>
#include <algorithm>
void print(const std::string& item)
{
std::cout << item << std::endl;
}
int main()
{
std::set<std::string> sortedItems;
for(int i = 1; i <= 5; ++i)
{
std::string name;
std::cout << i << ". ";
std::cin >> name;
sortedItems.insert(name);
}
std::for_each(sortedItems.begin(), sortedItems.end(), &print);
return 0;
}
2条答案
按热度按时间t1rydlwq1#
要对列表进行排序,你不需要
std::set
,你可以将名称存储在std::vector
中,然后使用头算法中的函数std::sort
。还有一个版本的函数接受一个 predicate ,因此您可以使用此 predicate 反转顺序,指定反向比较。查看sort的文档。还可以看看在header函数中定义的greater--这是一个 predicate ,可以用来反转排序顺序。看看这个short example on ideone:mxg2im7a2#
要以相反的顺序显示
set
,您可以用途: