c++ string类、vector容器

来源:互联网 发布:网络数据包截获 转发 编辑:程序博客网 时间:2024/06/05 01:05

1、string (标准库类型)

 (1)初始化:

string s1;
string s2="hello world";
string s3(5,'a');  //  s3="aaaaa";
string s4=s2;
string s5(s2);
string s6("value");

()与=的作用相似,()表示直接初始化   =表示拷贝初始化

(2)输入时,不读取空格,遇到空格读取结束。

(3) string类上的操作:

getline :读取一行,并输出.    用法:getline(cin,s1);

empty:判断字符串是否为空,若为空则返回1.  用法:ss.empty() 

size:判断字符串的大小   用法:  ss.size(),对于size()返回unsigned似乎是合情理的,但它返回的是string::size_type类型(算是无符号类型)。

(4)字符串加法:

规则:可以相加的元素有:string对象、字符、字符串。字符与字符或字符串与字符串不能直接相加,并且相加时必须有一个string对象。

c++中,字符串与string对象是不同的类型。

(5) 修改整个字符串,范围for语句(可用于修改字符串中的某些字符)

格式:for(auto 变量:表达式)    第一、for会遍历表达式中的每一个字符  第二、遍历时会将表达式中的每个字符赋给变量

(6)处理部分字符:使用下标 s[] 、使用迭代器 

toupper   isspace 

auto: 声明的变量可以自动判断数据类型

2、Vector容器:

Vector是类模板。

1)、形式:vector<type>v1;

2)、初始化:vector<int>t(n,3); n个值为3的元素

vector<string>s(n,”hi”);n个值为hi的元素

vector<int>t(n);n个值为零的元素

vector<int>t{n};一个值为n的元素

vector<string>t(n);n个空字符串

vector<int>t{4,8};两个元素,一个值是4,一个是8

如果初始化使用了花括号的形式,但提供的值不能用来列表初始化,这时{}同()。

vector<string>t{10”hi”};10个值为hi的字符串

3)、对vector对象赋多个不同的值:

  vector<int> t;

fori=0i=100i++

   t=push_back(i);  //100t,值为0~99

4)、遍历vector

        范围for语句或使用下标

3、迭代器:

1)迭代字符串:

for(autoc=s.begin();c!=s.end();++c)

    c是一个指针

2)不同类型的迭代器:

   如:vector的迭代器itvector<int>::iterator it;

      String的迭代器it:  string::iterator it;

若为const_iterator,则迭代器只能读

cbegincend,   迭代器只读

3)迭代器解引用,可用于判断vector是否为空。

     *it.empty()等价于it->empty()

原创粉丝点击