zoukankan      html  css  js  c++  java
  • [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

  • 相关阅读:
    关于System.currentTimeMillis()
    jpa
    java登录密码效验
    Yum 命令语法
    yum 源的配置与使用
    通过yum安装mysql
    centos 验证mysql的安装
    rpm
    GIT 切换到远程分支
    spring mvc 官方下载
  • 原文地址:https://www.cnblogs.com/itree/p/4793389.html
Copyright © 2011-2022 走看看