C++ Primer 学习笔记

迭代器iterator
const_iterator 只能读取容器内的元素,但是不能修改其值。
例如要遍历输出vector<string>类型的text中的元素,因为不需要修改元素值,可以用下面的方法来输出。
// use const_iterator because we won't change elements
 
for (vector<string>::const_iterator iter = text.begin(); iter != text.end(); ++ iter)
    cout<<*iter<<endl; // print each element in text
迭代器的算术操作(iterator arithetic)
    iter - n iter + n 对迭代器加上或减去一个整型值,产生一个新的迭代器,其位置在iter所指的元素的前(后)第n个位置。
必须指向vector类的一个元素或者向后添加一个元素。
    iter1 - iter2 表达式来计算两个迭代器对象的距离
    可以用迭代器算术操作来移动迭代器直接指向某个元素,例如:
vector<int>::iterator mid = vi.begin() + vi.end()/2  直接定位于vector的中间元素
 
标准库bitset​类型
 
    include<bitset>
    using std::bitset
    定义bitset时要明确它有多少位,在尖括号内规定它的长度值
    ​bitset<32> bitvec; // 32 bits,all zero
 
bitset对象上的操作
 
    b.any()      // b中​是否存在置为1的二进制位
    b.none()     // ​b中不存在置为1的二进制位吗?
    b.count()    // b中置为1的二进制位的个数
    b.size()     // b中二进制位的个数
    b.set()      // b中所有的二进制位都置为1
    b.reset()    // b中所有的二进制位都置为0
 
_________________________________________
术语:abstract data type 抽象数据类型
          container 容器
          
 
​数组
-------------------------------------
不能用一个数组来初始化另一个数组。
数组大小一旦确定不能修改,不能像vector一样push_back向后增加元素
 
​指针 (pointer)
-------------------------------------------
    指针保存的事另一个对象的地址
 
指针变量的定义:
    vector<int> *pvec;  //指向vector<int>类型的指针
    int  *pint1, *pint2;   // 指向int类型的指针
    string *pstring;       // 指向string类型的指针
    double *dp;           //指向double类型的指针
原文地址:https://www.cnblogs.com/kevin-lwb/p/3229430.html