zoukankan      html  css  js  c++  java
  • C++ Primer 笔记 第三章

    C++ Primer

    第三章 标准库类型

    3.1using声明

    例:

    using namespace atd;

    using std::cin;

    3.2string类型

    初始化方式

    string s1

    默认构造函数,s1为空串

    string s2(s1)

    s2初始化为s1的一个副本

    string s3(“value”)

    s3初始化为一个字符串的副本

    string s4(n, 'c')

    s4初始化为字符'c'n个副本

    getline读取整行文本

    getline接受两个参数:一个是输入流对象和一个string对象。不保存换行符。

    例:while(getline(cin, str));

    3.2.3string对象的操作

    s.empty()

    判断是否为空,空则返回true,否则返回false

    s.size()

    返回s中字符个数,返回string::type_size类型,不要赋值给intsigned)类型变量

    s[n]

    返回s中下标为n的字符,从0开始计数

    s1 + s2

    返回新连接的字符串

    s1 = s2

    s1的内容替换为s2的副本

    v1 == v2

    比较,返回值为布尔类型

    !=, <, <=, >, >=

    保持惯有特性

    3.2.4对象中字符的处理

    头文件:cctype

    isalnum(c)

    如果c是字母或数字,返回true

    isalpha(c)

    如果c是字母,返回true

    iscntrl(c)

    如果c是控制字符,返回true

    isdigit(c)

    如果c是数字,返回true

    isgraph(c)

    如果c不是空格但可打印,返回true

    islower(c)

    如果c是小写字母,返回true

    isprint(c)

    如果c是可打印字符,返回true

    ispunct(c)

    如果c是标点符号,返回true

    isspace(c)

    如果c是空白字符,返回true

    isupper(c)

    如果c是大写字母,返回true

    isxdigit(c)

    如果c是十六进制数,返回true

    tolower(c)

    如果c是大写字母,则返回相应小写字母,否则返回本身

    toupper(c)

    如果c是小写字母,则返回相应大写字母,否则返回本身

    可打印字符:可显示表示的字符;

    空白字符:空格,制表符,垂直制表符,回车符,换行符和进纸符中的任意一种;

    标点符号:除了数字,字母,空白字符以外的可打印的字符。

    3.3 vector

    头文件:<vector>

    定义:vector<elemtype> vname;

    vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型,vector类型的每一种都指定了保存元素的类型。

    3.3.1 vector对象的定义和初始化

    vector<T> v1;

    默认构造函数,v1为空

    vector<T> v2(v1);

    v2v1的一个副本

    vector<T> v3(n, i);

    v3包含n个值为i的元素

    vecor<T> v4(n);

    v4含有值初始化的元素的n个副本

    c++并非预先分配合适的空间,而是先初始化一个空vector对象,然后动态地增加元素。

    3.3.2 vector对象的操作

    v.empty()

    判断是否为空,空则返回true,否则返回false

    v.size()

    返回v中字符个数,返回vector<T>::type_size类型,不要赋值给intsigned)类型变量

    v[n]

    返回v中下标为n的字符,从0开始计数

    v.push_back(t)

    v的结尾添加一个值为t的元素

    v1 = v2

    v1的内容替换为v2的副本

    v1 == v2

    比较,返回值为布尔类型

    !=, <, <=, >, >=

    保持惯有特性

    3.4 迭代器

    迭代器是一种检查容器内元素并遍历元素的数据类型。

    标准库为每一种标准容器定义了一种迭代器类型,即含有名为iterator的成员。

    每个容器都定义了一对名为beginend的函数,用于返回迭代器。

    每种容器还定义了一种名为const_iterator的类型,该类型只能用于读取容器内元素的值,但const_iterator自身可变,它和constiterator对象不同。

    迭代器的算数操作:

    iter + n (n为整数)

    iter1 – iter2

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

    3.5标准库bitset类型

    头文件及using声明:

    <bitset>

    using std::bitset;

    定义:

    bitset<32> bitvec; //32bits, all zero

    bitset<n> b

    bn位,每位都为0

    bitset<n> b(u)

    bunsigned lingu的一个副本

    bitset<n> b(s)

    bstring对象s中含有的位串的副本

    bitset<n> b(s, pos, n)

    bs中从位置pos开始的n个位的副本

    string对象读入位集的顺序是从右向左。

    3.5.2 bitset对象上的操作

    b.any()

    是否存在1

    b.none()

    是否不存在1

    b.count()

    1的个数

    b.size()

    b中二进制的位数

    b[pos]

    返回bpos位置的二进制数

    b.test(pos)

    pos处是否为1

    b.set()

    所有设置为1

    b.set(pos)


    b.reset()

    所有设置为0

    b.reset(pos)


    b.flip()

    所有位取反

    b.flip(pos)


    b.to_ulong()

    返回该二进制表示的unsigned long

    os<<b

    b中的位集输出到os

    count操作返回类型是标准库中size_t类型,该类型定义在stddef.h中,是一个与机器相关的unsigned类型,其大小足以保证储存内存中对象的大小。

  • 相关阅读:
    subset子集全排序问题
    第15章动态规划------算法导论
    内存管理思维导图------现代操作系统(第四版)
    进程与线程思维导图------现代操作系统(第四版)
    现代操作系统
    GHUnitiOS 单元测试(带UI界面)下载地址
    iOS + webSocket 通讯
    iOS 甘特图的实现
    NSDate根据日期获得当前是周几,以及一年内的第几周,以及一个月内得第几周
    Swift 中文文档
  • 原文地址:https://www.cnblogs.com/bovenson/p/3886583.html
Copyright © 2011-2022 走看看