作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一个。在列表中存储 5 个名称。允许用户输入每个名称。
b.按字母升序对列表进行排序并打印列表。C。按字母降序排列列表并打印列表。
d.确保您的代码可以在没有错误或错误的情况下执行。
我无法按降序对列表进行排序,请帮忙:(
下面是我的升序源码
#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;
}
最佳答案
要对列表进行排序,您不需要 std::set
,您可以将名称存储在 std::vector
中,然后使用函数 std::sort
来自 header 算法。还有一个采用谓词的函数版本,因此您可以使用此谓词反转顺序,指定反向比较。查看 sort 的文档.也看看 greater在 header 函数中定义 - 这是一个谓词,您可以使用它来反转排序顺序。看看这个short example on ideone :
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <functional>
using namespace std;
int main() {
vector<string> test;
test.push_back("a");
test.push_back("c");
test.push_back("b");
sort(test.begin(), test.end());
for (unsigned i = 0; i < test.size(); ++i) {
cout << test[i] << endl;
}
sort(test.begin(), test.end(), greater<string>());
for (unsigned i = 0; i < test.size(); ++i) {
cout << test[i] << endl;
}
return 0;
}
关于c++ - 按字母降序排列列表并打印列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375520/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!