标准库string,vector,迭代器简介

一、标准库string类型

1.1、string对象的初始化

  • string s1;
  • string s2(s1);
  • string s3("value");
  • string s4(n, ' c') ;

【注】string对象读写的特点:

  • 读取并忽略开头所有的空白字符
  • 读取字符直至再次遇到空白字符,读取终止
int main()
{
  string s;
  cin >> s;
  cout << s;
  return 0;
}

比如,上述程序中输入“ hello world ”,则屏幕上输出的为“hello”,不包含任何空格,将代码稍作修改,则可以这样:

string s1,s2;
cin >> s1 >> s2;
cout << s1 <<s2;

这样就会输出"helloworld"

1.2string对象的操作

string对象的操作
s.empty()如果s为空串,返会true,否则返回false
s.size()但会s中字符串的个数
s[n]返回s位置为n的字符,位置从0开始
s1+s2把s1和s2连接成新的字符串
s1 = s2将s2的内容赋给s1
v1 == v2比较v1与v2的内容,相等返回true,否则返回false

【注】:在进行string对象相加时,+操作符的左右操作数必须至少有一个时string类型的

二、vector标准库

vector对象的重要属性就是能够动态增长

2.1初始化

vector ivec;

2.2vector操作

vector操作
v.empty
v.size()
v.push_back(t)在v的末尾增加一个值为t的元素
v[n]
v1 = v2
v1 == v2比较

【注1】:vector下标操作不添加元素

vector<int> iv;
for(int i=1 ; i < 10 ;i++)
    iv[i] = i;

上述程序执行完。iv是空的vector对象,通过下标只能用于获取已经存在的元素,若像插入,可使用push_back(i)
【注2】:只能对已经存在的元素进行下标操作

三、迭代器

迭代器的目的是为了遍历,在某种程度上相当于一个指针

3.1 容器的iterator类型

vector定义的自己迭代器类型:

vector<int>::iterator iter;

这条语句定义了一个iter的变量,它的数据类型是有vector定义的iteration类型。

3.2 begin和end操作

我们通过一个简单的程序来理解,程序:

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    vector<int> iv;
    for(int m = 3 ; m < 7 ; m++ )
      iv.push_back(m);
    for(vector<int>::iterator iter = iv.begin();iter != iv.end();iter++)
      cout<<*iter<<endl;
    return 0;
}

运行结果:
在这里插入图片描述
很显然,begin,end在此处就是下标的作用,然后使用*iter来访问迭代器所指向的元素。

3.3 vector迭代器的自增与解引用运算

迭代器可使用解引用(*操作符)来访问迭代器所指向的元素:

*iter = 0;

迭代器的自增:在int类型中,就是把int的值"加1",而对迭代器对象就是把容器中的迭代器”向前移动一个位置“。所以,如果iter指向第一个元素,那么iter++指向第二元素。

迭代器的算术操作:

  • iter + n
  • iter - n 生成一个新的迭代器,其位置在iter所指向元素之前(加)或之后(减)n个元素的位置
  • iter1 - iter2 计算两个迭代器对象的距离
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值