<h3></h3>
题目描述
对输入的多个国家名按照字典序进行排序。
输入格式
多个国家名称,每行一个,不含有多余的字符。
输出
排序后的结果。每行一个国家名。
样例输入
China
Usa
United Kingdom
样例输出
China
United Kingdom
Usa
如此简单的一道题,我纠结了一个早上,用c++来写,我知道有个vector可以动态创建数组对象,然后我看书本的例题,对着语法写
写出这样的代码
#include <iostream>
#include <string>
#include <vector>
#include<algorithm>
using namespace std;
int main()
{
vector<string>arr[100]; //我猜他不会用超过100个数据测试
int i=0;
// while(getline(cin, arr[i++])) //没有适合的重载参数列表
string s;
// while(getline(cin,s), arr[i++] = s) //“=”没有适合的重载操作符
while (getline(cin, s))
{
arr[i].assign(s); //函数不接受一个参数
}
return 0;
}
根本就没法进行输入,我彻底气死了……
后来我想了一下,好像有个无限输入,ctrl +c终止输入的也可以的,然后就写了下面的代码,然后找了好多网页看,才发现,原来vector其实以一个容器!!!!!
可是,vector里面装的都是string对象,,书本说可以通过【】来直接访问对象,可是为什么就是不能给容器里面的对象赋值啊?????
#include <iostream>
#include <string>
#include <vector>
#include<algorithm>
using namespace std;
int main()
{
vector<string>arr;
int i=0;
string s;
while (getline(cin, s))
{
arr.push_back(s);
}
sort(arr.begin(),arr.end());
for (int i=0; i<arr.size(); i++)
{
cout<<arr[i]<<endl;
}
return 0;
}