您的位置:首页 > 编程语言 > C语言/C++

C++标准容器1(Vector)

2012-06-27 08:49 435 查看
1 vector

vector <string> sentence ;//创建字符串的容器

sentence.reserve(5);//声明一个5个单位容器

sentence.push_back("how");//向容器最后压入"how"字符串

sentence.push_back("are");//向容器最后压入"are"字符串

sentence.push_back("you");//向容器最后压入"you"字符串

sentence.push_back("and");//向容器最后压入"and"字符串

sentence.push_back("me");//向容器最后压入"me"字符串

copy(sentence.begin(),sentence.end(),ostream_iterator<string>(cout," "));

cout<<endl;//打印出容器里面的所有数据,

cout<<"Max_Size():"<<sentence.max_size()<<endl;

cout<<" Size():"<<sentence.size()<<endl;

cout<<"capacity():"<<sentence.capacity()<<endl;

// --上面的结果

//1. 打印: how are you and me

//2.打印:Max_Size():26843455

//3.打印: Size():5

//4.打印:capacity():5

swap(sentence[1],sentence[3]);

copy(sentence.begin(),sentence.end(),ostream_iterator<string>(cout," "));

cout<<endl;//打印出容器里面的所有数据,

//5.打印 how and you are me

sentence.insert(find(sentence.begin(),sentence.end(),"me"),"week");//在me 前面插入一个字符串''week''

copy(sentence.begin(),sentence.end(),ostream_iterator<string>(cout," "));

cout<<endl;//打印出容器里面的所有数据,

//6.打印 how and you are week me

cout<<"Max_Size():"<<sentence.max_size()<<endl;

cout<<" Size():"<<sentence.size()<<endl;

cout<<"capacity():"<<sentence.capacity()<<endl;

//7.打印:Max_Size():26843455

//8.打印: Size():6

//9.打印:capacity():10

上面是vector实例

下面讲讲我个人对vector的理解,第一次博客,写的不好各位见谅

vector是一个动态数组,使用vector要先包一个#include<vector>

1.构造:vector<Type> c //产生一个空vector,其中没有元素

2.拷贝构造: vector<Type> c1(c2) //产生一个同一类型的副本,所有元素都被拷贝

那些我们经常用的函数们:

vector v1;

1 v1.size(); 返回当前容器中的数量

2 v1.empty();判断大小是否为0

3 v1.max_size();返回最大可以容纳的元素数量

4 capacity();返回重新分配空间所能容纳的最大元素数量

5 v1.at(index);返回index所在的元素上面元素,如果越界,就抛出out_of_range

6 v1[index];返回Index上面的元素的值,不进行范围检查的(所以你懂的)

7 v1.front();返回第一个元素,可以用给一个元素赋值

8 v1.back();返回最后一个元素,可以用来给最后一个元素赋值

9 v1.insert(pos,elem);在pos位置上插入一个elem副本,并返回新元素位置





第一次写博客,同时在看电视中,很多时候犹豫着自己走程序是否正确,但是我从不会停下我前行的脚步,愿意去买了很多书看,去学习,去膜拜那些经典。更希望能在网上看到更多前辈们写的计算机语言的相关感悟,我们小子辈一定去认真学习,你们那些年踏下的脚印。

路上很多坎坷,我们有代码陪伴我们怕什么,给那些和我一样喜欢程序的童鞋们共勉。

这篇文章有参考C++标准库。

-------- 玲
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: