vector,string01(C++)

编写程序对 12 个月的英文单词根据字典序进行从小到大的排序,请使用 string 向量实现。
 

/*====================================================================================
*学号:1527403059
*作业:E03
*功能:编写一个程序对12个月的英文单词根据字典序进行从小到大的排序,请使用string向量实现
*作者:陆胤任
*日期:2016.3.8
*====================================================================================*/

#include<iostream>
#include<vector>
#include<sstream>
#include<string>

using namespace std;

int main()
{
	vector<string> a;                                //定义向量,为string类型
	a.push_back("January");                          //一次将值赋给向量a
	a.push_back("February");
	a.push_back("March");
	a.push_back("April");
	a.push_back("May");
	a.push_back("June");
	a.push_back("July");
	a.push_back("August");
	a.push_back("September");
	a.push_back("October");
	a.push_back("November");
	a.push_back("December");

	for(int i=0;i<11;i++)                          //循环选择排序,按字典序排
	{
		int min=i;
		for(int j=i+1;j<12;j++)
		{
			string t;
			if(a[j]<a[min])
			{
				t=a[j];
				a[j]=a[min];
				a[min]=t;
			}
			string temp;
			if(min!=i)
			{
				temp=a[min];
				a[min]=a[i];
				a[i]=temp;
			}
		}
	}
	cout<<"按字典序排序:"<<endl;
	for(int i=0;i<12;i++)                              //循环将向量中的元素输出
	{
		cout<<a[i]<<endl;
	}
	cout<<endl;

	vector<int> b(12);
	for(int i=0;i<12;i++)
	{
		b[i]=a[i].length();                              //保存月份长度的向量
	}
	for(int i=0;i<11;i++)
	{
		for(int j=i+1;j<12;j++)
		{
			if(b[i]<b[j])
			{
				swap(b[i],b[j]);                          //交换两向量
				swap(a[i],a[j]);
			}
		}
	}
	cout<<"按照长度排序:"<<endl;
	for(int i=0;i<12;i++)
	{
		cout<<a[i]<<endl;
	}

    return 0;
}

猜你喜欢

转载自blog.csdn.net/ukco_well/article/details/82219024