c++标准库类型笔记 自己学习备忘用的

来源:互联网 发布:歌曲字幕特效软件 编辑:程序博客网 时间:2024/06/08 00:50

c++提供了一个内容丰富的抽象数据类型标准库 迭代器

string vector bitset抽象的高级数据结构

string类型支持长度可变的字符串 vector可用于保存一组指定类型的对象

string类型常用的构造函数,当没有指定对象初始化时,系统将使用默认的构造函数

string s1;默认构造函数

string s2(s1); //将s2初始化为s1的副本

string s2("adsfasdfasfas");//初始化为一个字符串的副本

string s4(n,'c')//初始化为字符'c'的n个副本

可以用标准输入输出来读写字符串

接受带空格的字符串

getline(cin,s1);

//cin.getline(s1);,//没成功不知道啥问题

getline函数返回时丢弃换行符,换行符丢弃,将不会储存在string中

string 字符串的下标应该为一个sizetype型 在string中string::size_type(类型为 unsigned类型)

//    string s("a111");
    for(int i=0;i<s.size();++i)
      cout<<s[i];

没问题

 

vector  同种类型的对象的集合

vector 是一个模版类

几种vector初始化

vector<T> v1;

vector<T> v2(v1);

vector<T> V3(n,i);

vector<T> v4(n);

vector对象(以及其他标准容器对象)的重要属性就在于可以在运行是高效地添加元素,因为vector增长的效率搞,在元素值已知的情况下,最好动态添加元素

vector与string类型使用size_type

vector<int>::size_type 必须指明类型

#include <vector>

#include <iostream>

push_back//方法向vector加入数据

    string out;
    vector<string> v;
    while(cin>>out){
        v.push_back(out);
    }

vector下标操作只能针确认存在的元素操作 试图获取不存在元素将产生运行时错误

除了下标访问元素外,还可以使用迭代器遍历容器元素,标准库为每种元素定义了一个迭代器,

vector<int>::iterator ite; 其实迭代器类是指针,指向容器的某个元素

vector<int>::iterator ite=vector.begin();//指向vector的第一个元素

vector<int>::iterator ite=vector.end();//返回末端元素的下一个,并不指向真正的元素,表示容器的元素都处理完了

迭代器可使用解引用操作符(*操作符) 来访问迭代器所指向的元素 很类似指针

*ite =0;由end操作返回的迭代器不知向任何元素,一次不能对它进行解引用或自增操作

如果容器为空则begin返回的iterator和 end返回的不同

两种迭代器 iterator 和const_iterator  只读迭代器const_iterator

 

 

bitset 位集

bitset<n> b; b有n为 每位都为0

bitset<n> b(s) ,b是string对象s中含有的位串的副本

bitset<n> b(str,len,begin);//转入bieset还是反向的

string对象和bitset是反向转化的

string s="1100"

bitset<n>  b(s);那么bitset的23位为1其余的为0

 b.to_ulong有位集中同样的二进制位返回一个unsigned long类型的数据

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击