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改变,所以不允许
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改变,所以不允许
相关文章推荐
- C++每日积累学习整理——指针部分
- 笔记:C++学习之旅 ---string 类、vector和迭代器
- 【C++学习】迭代器的使用:vector的操作---ShinePans
- 【C++】vector容器和list容器中使用单个迭代器的erase函数学习笔记
- C++ 学习笔记(3)命名空间using、字符串、string、vector、迭代器、数组
- 编写C++程序来创建有 10 个元素的 vector 对象。用迭代器把每个元素值改为当前值的 2 倍
- C++学习笔记28——泛型算法之iostream迭代器
- C++学习笔记之——vector的size和capacity、resize和reserve的区别
- c++学习---vector的赋值
- c++ vector, 迭代器
- 学习C++ -> 向量(vector)
- C++学习:vector用法
- C++学习之深入理解迭代器——迭代器特性、迭代器标志-iterator_traits
- c++vector学习
- C++ STL 学习一vector
- C++学习笔记--标准库类型(vector,iterator,bitset)(三)
- C++杂谈(二)初识vector容器与迭代器
- C++算法库学习__std::sort__对 vector进行排序_排序后就可以进行使用std::lower_bound进行二分查找(查找第一个大于等于指定值的迭代器的位置)__std::unique
- c++ vector 基础学习
- 【资源】C++学习资料 - 逆天整理 - 精华无密版【最新】