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

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类型的数据

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值