C++ STL标准模板库基本操作

实验环境: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;

}

猜你喜欢

转载自blog.csdn.net/ArthurCaoMH/article/details/88809179
今日推荐