国名排序


<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;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值