3.c++标准库

来源:互联网 发布:域名 海外服务器 编辑:程序博客网 时间:2024/06/05 06:12
1 using:
    using namespace::name;
    //using用来明确制定程序中变量名对应的命名空间
    //一个using一次只能指定一个变量名

2 string

    头文件: #include <string>
         using std::string;

    构造器:
        string s1;        //默认构造器, s1为空字符串
        string s2(s1);        //将s2初始化为s1的副本
        string s3("value");    //将s3初始化为字面值字符串的副本
        string s4(n, 'c');    //将s4初始化为'c'的n个副本

    标准输入读取字符串:    cin >> s;
        标准输入读取字符串时,将忽略开头的所有空白符,
        并在字符串再次遇到空白符时结束读取;

    getline函数:
        读取一行数据,不忽略空白符,遇到换行符则停止
        输入。getline读取的字符串将去除最后的换行符。

    string对象的常用操作:
        s.empty();    //判空
        s.size();    //判长
        s1 + s2;    //连接,可以将一个string对象和
                    一个字符串字面值相加,但是必须
                    注意不能将两个字面值直接相加。
        s1 = s2;    //赋值
        s1 == s2;    //等式比较
        !=, <, <=, >, >=    //非等式比较

    string对象的内置类型:
        string::size_type        //拥有存储字符串足够长度的无符号数值类型

    string下表操作:
        string的下表操作可以访问对应下标的字符,下表操作可以充当左值。


3 vector对象:
    
    vector 是一个类模板,可以创建同一类型对象的集合。
    
    头文件: #include <vector>
         using std::vector;
        

    vector对象初始化:
        vector<Type> v;        //默认构造器
        vector<Type> v2(v1);    //副本初始化(用同类型vector对象初始化vector对象)
        vector<Type> v3(n, i);    //n元素初始值初始化
        vector<Type> v4(n);    //n元素默认值初始化


    vector对象的常用操作:
        v.empty();    //判空
        v.size();    //判长
        v.push_back(e);    //追加元素
        v[n];        //下表读取元素
        v1 = v2;    //把v1中的元素替换成v2元素的副本
        v1 == v2;    //等式比较
        !=, <, <=, >, >=    //非等式比较

    vector 对象的内置类型:
        vector<Type>::size_type
        vector<Type>::difference_tye
        vector<Type>::itertor
        vector<Type>::const_iterator        //只读迭代器,不能修改指向对象

4 迭代器:
    依次遍历容器中元素的数据类型,实现遍历容器的通用方法;

    vector<Type>::itertor itr = vec.begain();        //itr只想vec容器的第一个元素
    vec.end();                        //指向vec容器最后一个元素的
                                    下一个位置,当容器为
                                    空时,vec.begain() == vec.end()

    迭代器的自增操作和解引用操作:
        ++itr;        //迭代器将指向下一个元素
        *itr;        //获得当前指向对象的引用
        #由于end()操作返回不指向任何元素的迭代器,因此不能对其进行自增操作和解引用操作。

    const_iterator 和 const iterator:
        const_iterator 是指向const元素对象的迭代器,它只能对元素进行只读操作;
        const iterator 是const的迭代器,它一经初始化便不能改变其指向;

    迭代器的算数操作:
        itr += n;        //迭代器加/减整型值等于向前或向后移动
        itr -= n;
        itr1 -itr2;        //计算两个迭代器的距离(返回difference_type 的signed整形值)

5 bitset:
    处理二进制位的有序集。

    头文件:
        #include <bitset>
         using std::bitset;

    初始化:
        bitset<n> b;        //b有n位,每位都为0;
        bitset<n> b(u);        //b是 unsigned long型 u 的副本;
        bitset<n> b(s);        //b是 string对象 s位串 副本,从右向左由低向高端依次读入数据
        bitset<n> b(s, pos, n)    //

    bitset的基本操作:
        #判断
        b.any();        //存在1
        b.none();        //不存在1
        b.size();        //b中二进制位的个数
        b.count();        //b中1的个数
        #读取位
        b.test(pos);        //测试pos位置是否为1
        b[pos];            //返回pos位置的值
        #设置位
        b.set();
        b.reset();
        b.flip();
        b.set(pos);
        b.reset(pos);
        b.flip(pos);
        #输出位串
        b.to_ulong();
        os << b;
0 0
原创粉丝点击