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

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

2014-04-18 11:06 465 查看
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改变,所以不允许
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息