• [c++primer][03]标准库类型


    3.1 using声明

    using namspace::name;

    一旦使用了using声明,就可以直接引用名字,不需要再引用该名字的命名空间

    3.2 string类型

    读入未知数目的string对象

    while(cin >> word){
            cout << word << endl;
    }

    用getline读取整行文本,默认遇到换行符结束( 不存储换行符 )

    while(getline(cin, line){
        cout << line << endl;
    }

    string对象的赋值

    从概念上讲,赋值操作先把左操作数占用的空间释放,再分配足够存放右操作数的内存空间,最后将右操作数中所有字符复制到新分配的空间。

    下标操作

    string类型可以通过[ ]访问单个字符,下标操作可用作左值,下标值(索引)应为string::size_type类型

    3.3 vector类型

    vector是一个类模板(class template),可用来定义任意多种数据类型。vector不是数据类型,vector<int>是数据类型。

    初始化

    vector<T> v(n);  //v含有值初始化的元素的n个副本

    什么是值初始化?

    如果没有指定元素的初始化式,标准库将自行提供一个元素初始值进行值初始化,这个初始值将用来初始化容器中的每个元素

    根据vector存放的数据类型分三种情况:1)内置类型,初始值为0;2)含构造函数的类类型,用默认构造函数初始化;3)无构造函数,标准库仍然产生一个带初始值的对象。

    必须是已经存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。

    3.4 迭代器简介

    现代C++更倾向于使用迭代器而不是下标操作访问容器元素。

    迭代器的操作

    由end操作返回的迭代器指向vector的“末端元素的下一个”,称为超出末端迭代器。迭代器支持自增或解引用,但end返回的迭代器不指向任何元素,不能进行上述操作。

    用==或!=操作符来比较迭代器,如果两个迭代器指向同一对象,则它们相等,否则不相等。

    const_iterator

    算术操作(vector迭代器)

    iter + n;

    iter - n;

    iter1 – iter2; //计算迭代器对象的距离,该距离是名为different_type的signed类型

    注意:任何改变vector长度的操作都会使已存在的迭代器失效。

    3.5 bitset类型

    bitset<32> bitvec;//定义了一个含有32位的bitset对象

    用string对象初始化bitset对象时,从string对象读入位集的顺序是从右向左(string对象的最右边字符用来初始化bitset对象低阶位)

    size_type是string类型和vector类型定义的与机器无关的unsigned 类型,用于保存任意string对象或vector对象的长度。

    different_type是由vector类型定义的signed整型,用于存储任意两个迭代器间的距离。

    size_t是与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小;

    ssize_t是与机器相关的signed类型。

    Unix编程之size_t、ssize_t

  • 相关阅读:
    一些常用的代码评审工具
    Atlassian旗下一干team build软件
    Jira功能全介绍
    项目经验分享
    网址、下载地址
    Java 字节码解读
    Gitlab 安装
    博客园设置
    mybatis 遇到空串无法判断
    Shell 脚本入门
  • 原文地址:https://www.cnblogs.com/itree/p/4793389.html
Copyright © 2020-2023  润新知