实验环境:Ubuntu16.04 LTS
编译环境:Qt 5.5.1
题目1:
有以下字符串: “www.uestc.edu.cn” ,“www.codeproject.com”,“www.cnki.net”,“www.163.com”,“www.taobao.com”, “www.baidu.com”.将以上6个字符串装入vector容器中,采用某一种STL排序算法,对这6个字符串进行排序后输出;
程序清单:
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
int main()
{
vector<string>wz; //定义一个vector
vector<string>::iterator it; //定义一个迭代器
//初始化vector
wz.push_back("www.uestc.edu.cn");
wz.push_back("www.codeproject.com");
wz.push_back("www.cnki.net");
wz.push_back("www.163.com");
wz.push_back("www.taobao.com");
wz.push_back("www.baidu.com");
cout<<"排序前:\n";
for(it=wz.begin();it!=wz.end();it++)
cout<<*it<<"\n";
cout<<endl;
sort(wz.begin(),wz.end());
cout<<"排序后:\n";
for(it=wz.begin();it!=wz.end();it++)
cout<<*it<<"\n";
cout<<endl;
return 0;
}
题目2:将以上6个字符串装入list容器中,统计以上6个字符串中单个字符出现的个数进行统计;
程序清单:
#include<iostream>
#include<algorithm>
#include<list>
#include<string>
using namespace std;
int main()
{
//利用数组进行切换
int num[256]={0};
string cs[6]={"www.uestc.edu.cn","www.codeproject.com","www.cnki.net","www.163.com","www.taobao.com","www.baidu.com"};
list<string>wz(cs,cs+6); //定义一个list
list<string>::iterator it; //定义一个迭代器
cout<<"原始数据:\n";
for(it=wz.begin();it!=wz.end();it++)
cout<<*it<<"\n";
cout<<endl;
cout<<"个数统计:\n";
for(it=wz.begin();it!=wz.end();it++)
{
for(int i=0;i<(*it).size();i++)
// cout<<(*it)[i]<<endl; 注意:*的优先级要小于[],因此要加()
num[(int)((*it)[i])]++;
}
for(int i=0;i<256;i++)
if(num[i]!=0)
cout<<(char)i<<":"<<num[i]<<endl;
cout<<endl;
return 0;
}
题目3:将以上6个网址的关键记忆字符串(uestc,codeproject,cnki,163,taobao,baidu),提取分别从以上6个字符串中提取出来(用程序进行提取),并和原始字符串用map做一个映射,并任意输入一个关键字再map内进行查询,并输出及结果
程序清单:
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<map>
using namespace std;
int main()
{
vector<string>wz; //定义一个vector
vector<string>::iterator it; //定义一个迭代器
map<string,string> wzkey;
map<string,string>::iterator iter;
string cs[6];
int i;
string n;
//初始化vector
wz.push_back("www.uestc.edu.cn");
wz.push_back("www.codeproject.com");
wz.push_back("www.cnki.net");
wz.push_back("www.163.com");
wz.push_back("www.taobao.com");
wz.push_back("www.baidu.com");
cout<<"原始数据:\n";
for(it=wz.begin();it!=wz.end();it++)
cout<<*it<<"\n";
cout<<endl;
//提取关键记忆字符串
for(it=wz.begin();it!=wz.end();it++)
{
for(i=0;i<(*it).size();i++)
{
int k=0;
if((*it)[i]=='.')
{
do{
cs[it-wz.begin()].push_back((*it)[i+1]);
k++;
i++;
}while((*it)[i+1]!='.');
break;
}
}
}
for(int i=0;i<6;i++)
{
wzkey.insert(pair<string,string>(cs[i],wz[i]));
}
cout<<"关键记忆字符串:\n";
for(iter=wzkey.begin();iter!=wzkey.end();iter++)
cout<<iter->first<<" "<<iter->second<<endl;
cout<<endl;
//查找并输出结果
cout<<"请输入您要查找的关键字\n";
cin>>n;
iter=wzkey.find(n);
if(iter!=wzkey.end())
cout<<"你所查找的网址是:\n"<<iter->second<<endl;
else
cout<<"未找到您要查找的网址\n";
return 0;
}