C++每日积累学习整理——vector和迭代器

string对象字符处理有一些很实用的小函数,用来判断当前字符的任何char值(在cotype头文件中定义):

isalnum(c) //c是字谜或数字

isalpha(c) //字母

iscntrl(c) //控制符

isdigit(c) //数字

ispunct(c) //标点

还有一些在原书第四版P/77有介绍

       

现代C++常用vector和迭代器取代数组和指针,因为vector是动态的,空间不用预分配,对程序员来说操作访问修改都比较容易。

当然在追求程序速度的时候,数组和指针必不可少。

vector及迭代器操作

vector的empty(),push_back(),pop_back(),size()等操作较容易在此不做介绍。


//判断两个vector是否相等(核心程序)

for (vector<int>::iterator iter1=i1.begin(),iter2=i2.begin();iter1!=i1.end()&&iter2!=i2.end();iter1++,iter2++)
{
if (*iter1!=*iter2) //*iter解引用,即取迭代器所指向的元素值
{
break;
}

}


const_iterator和const的iterator对象 的区别:
前者是一个迭代器,其自身值可变,但是不能用来改变其所指向的元素的值。
例如:
vector<int> num(10);//声明并初始化一个vector
vector<int>::const_iterator cit=num.begain();
*cit=1;//有错,元值不能改变
++cit;//没错,迭代器正常操作

后者是声明一个const迭代器,必须初始化,而且初始化后不能改变他的值(既不能自增自减)
例如:
vector<int> num(10);//声明并初始化一个vector
const vector<int>::iterator cit=num.begain();
*cit=1;//对元素赋值,没错
++cit;//有错,const类型迭代器不能自增



说到const,const引用和非const容易混淆:
const引用是指向const对象的引用:
例如:
const int ival=1024;
const int &reival=ival;//没错,别名和原值都是const的

int &re2=ival;//有错,试图修改re2会导致ival改变,所以不允许


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值