STL容器之字典排序

来源:互联网 发布:行知学园保证班 编辑:程序博客网 时间:2024/06/03 16:01

STL简单用法

在 STL9中对vector 的习惯用法完全不同。我们不是定义一个已知大小的 vector,而是定义一个空 vector  

vector< string > v;


我们向 vector 中插入元素,而不再是索引元素,以及向元素赋值,例如 push_back()操作,就是在 vector 的后面插入一个元素,下面的 while 循环从标准输入读入一个字符串序列并每次将一个字符串插入到 vector 中  
string s;
vector<string> v;
while(cin>>s)
{
if(s=="0")
break;
v.push_back(s);//对vector容器初始化赋值(可以使用push_back在容器尾端加入元素),如果我们要对vector容器遍历的话,可以常用数组或者迭代器的方式.
}

迭代访问元素典型的做法是使用 vector 操作集中的begin()和 end()所返回的迭代器 iterator  

vector<string>::iterator it;//使用vector容器提供的iterator类型,定义一个迭代器变量,
for(it=v.begin();it!=v.end();++it)
cout<<*it<<" ";


iterator 是标准库中的类,它具有指针的功能 

*it; 
对迭代器解引用,并访问其指向的实际对象  
++it;

向前移动迭代器 it 使其指向下一个元素  


输入一组单词(区分大小写),输出这些单词的字典排序


注:1.可直接利用vector容器

#include <iostream>#include <vector>using namespace std;int main(){string s;vector<string> v;while(cin>>s){if(s=="0")break;v.push_back(s);//对vector容器初始化赋值(可以使用push_back在容器尾端加入元素),如果我们要对vector容器遍历的话,可以常用数组或者迭代器的方式.}sort(v.begin(),v.end());vector<string>::iterator it;//使用vector容器提供的iterator类型,定义一个迭代器变量,for(it=v.begin();it!=v.end();++it)cout<<*it<<" ";cout<<endl;return 0;}/*aad fr ce kt ac pi 0*/

2.可用set/multiset

#include <iostream>#include <set>using namespace std;int main(){string s;multiset<string> sset;while(cin>>s){if(s=="0")break;sset.insert(s);}multiset<string>::iterator it;for(it=sset.begin();it!=sset.end();++it)cout<<*it<<" ";cout<<endl;return 0; }



0 0
原创粉丝点击