您的位置:首页 > 其它

string和vector

2016-05-27 18:52 1151 查看
一、String对象

1、string s;

s.size();

//返回的是s中字符的个数,也是s的长度;

//string对象最后没有加空字符

//size()返回的是string::size_type类型,也就是unsigned类型,而不是int类型

2、两个string对象的相加

string标准库中重载了"+"运算符;

string s1("hollo");

string s2("world");

string s3=s1+s2; //ok

但要注意的是,+操作符的左右操作数必须至少有一个是string类型:

string s4="hello"+"world"; //error:no string operand

string s5=s1+", "+"world"; //ok

string s6="hello"+", "+s2; //error

二、标准库vector类型

1、vector对象的定义和初始化

几种初始化vector对象的方式

vector<T> v1;

vector保存类型为T的对象。默认构造函数,v1为空

vector<T> v2(v1);

v2为v1的一个副本

vector<T> v3(n,i);

V3包含n个值为i的元素

vector<T> v4(n);

V4含有值初始化的元素的n个副本

vector<int> ivec;

vector<sales_item> Sales_vec;

虽然可以对给定元素的个数的vector对象预先分配内存,但更有效的方法是先初始化一个空的vector对象,然后再动态增加元素。(vector和数组很像,但数组不能动态增加元素,而且值得注意的是vector下标操作不添加元素,在下面的3中讨论)

2、vector对象的size

vector对象的成员函数size返回相应vector类定义的size_tyoe的值,但值得注意的是使用size_type类型时,必须指出该类型是在哪里定义的。vector类型总是包括vector的元素类型:

vector<int>::size_type //ok

vector::sizet_ype //error

3、下标操作不添加元素

#include<iostream>

#include<vector>

using std::cin;

using std::cout;

using std::endl;

using std::vector;

int main(){

vector<int> ivec; //empty vector

//for(vector<int>::size_type i=0;i!=10;++i)

// ivec[i]=i;

/*试图在ivec中插入10个元素,元素值依次为0-9的整数。但是,这里的ivec是空的vector对象,而且下标只能获取已存在的元素。*/

for(vector<int>::size_type i=0;i!=10;++i)

ivec.push_back(i); //push_back(t) 在末尾增加一个值为t的元素

for(vector<int>::size_type i=0;i!=ivec.size();++i)

cout<<ivec[i]<<" ";

cout<<endl;

return 0;

}

对于下标操作符[]的使用有一点非常重要,就是仅能提取确实已存在的元素。试图对不存在的元素进行下标操作是程序设计过程中经常发的错误,有可能会导致程序崩溃。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: