美文网首页
3.字符串、向量和数组

3.字符串、向量和数组

作者: 龟龟51 | 来源:发表于2017-10-26 10:27 被阅读0次

    3字符串、向量和数组

    3.1命名空间的using声明

    Using std::cin;

    Using namespace std;

    或者直接用std::cout

    注意:头文件不应包含using声明。

    3.2string

    初始化

    使用“=”是拷贝初始化,不适用符号是直接初始化

    String::size_type:string定义的一种类型,具体类型未知,可以通过auto或者decltype推断。

    String的比较先比较长度,长度相同,则比较第一个相异的元素的字典序。

    String可以直接使用+,但必须+号两边必须有一个为string类型,也可以与“字符”直接相加。

    处理string中字符

    Cctype头文件中

    可以通过for语句遍历或者下标访问,但是下标访问注意是否在string范围内。

    3.3vector

    初始化

    两种例外情况:其一,使用拷贝初始化(即使用=时),只能提供个初始值:其二,如果提供的是个类内初始值,则只能使用拷贝初始化或使用花括号的形式初始化。第三种特殊的要求是,如果提供的是初始元素值的列表,则只能把初始值都放在花括号里进行列表初始化,而不能放在圆括号里:

    可以采用列表初始化{“”, “”, “”}

    添加元素

    Push_back在向量末尾增加一个元素,不需要提前初始化空间。

    Vector也可以for语句,下标访问。

    3.4迭代器介绍

    Begin指向第一个元素,end(尾后迭代器)自相最后元素的下一个位置。

    运算符一般使用==和!=;

    迭代器的类型有const_iterator(可读)和iterator(可读写)。

    Cbegin和cend是返回头尾迭代器,返回值都是const_iterator;

    3.5数组

    与vector不同的地方,数组的大小确定不变,不能随意向数组中增加元素。

    如果不清楚元素的确切个数,请使用vector。

    初始化

    维度必须是一个常量表达式。

    字符数组的特殊性:字符串结尾处还有一个空字符,也会拷贝到字符数组中去。

    不允许拷贝和赋值。

    下标访问

    For语句,访问数组下标一般定义为size_t类型,但不能超过其size。

    指针和数组

    顺组名即指针,使用数组的时候编译器一般会把它转换成指针。

    指针也是迭代器,可用begin()和end()得到数组的头尾。

    给一个指针加上(减去)某整数值,结果仍是指针。新指针指向的元素与原来的指针相比前进了(后退了)给整数值个位置。

    解引用和指针运算的交换:指针加上一个整数所得的结果还是一个指针。假设结果指针指向了一个元素,则允许解引用该结果指针:

    指针指向的是数组中的元素(或者数组中尾元素的下一位置);

    使用数组的时候其实真正用的是指向数组首元素的指针。

    3.6多维数组

    数组的数组(由内向外的顺序阅读)

    一个维度表示数组本身大小,另外一个维度表示其元素(也是数组)大小;

    For语句循环时,如果要改变值的大小用&;

    相关文章

      网友评论

          本文标题:3.字符串、向量和数组

          本文链接:https://www.haomeiwen.com/subject/ehvhpxtx.html