C++ Primer学习笔记(三) 标准库类型

1,、标准库类型主要包括以下四种:

  1. string类型:可变长字符串  。头文件声明:#include<string>   using std::string;
  2. vector类型:容器,可以包含其他对象。一个容器中所有对象必须是同一类型的。 头文件声明:#include<vector> using std::vector;
  3. iterator类型:迭代器。一种检查容器内元素并遍历元素的数据类型。
  4. bitset类型:处理二进制位的有续集。  头文件声明:#include<bistset>  using std::bitset;

2、string  类型的输入操作符和 getline  函数分别如何处理空白字符?

   string  类型癿输入操作符对空白字符癿处理:读取并忽略有效字符(非空白字符)之前所有癿空白字符,然后读取字符直至再次遇到空白字符,读取终止(该空白字符仍留在输入流中)。
getline  函数对空白字符癿处理:不忽略行开头的空白字符,读取字符直至遇到换行符,读取终止并丢弃换行符(换行符从输入流中去掉但并不存储在 string对象中)。

3、string对象的大小比较策略:

  1. 如果两个string对象长度不同,且短的string对象与长的string对象的前面部分相匹配,则短的string对象小于长的string对象。
  2. 如果两个string对象的字符不相符,则比较第一个不匹配的字符。

4、当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数至少有一个是string类型的。

       典例:string s2=s1+","+"word"。    //s1与","相加后返回一个新的string对象

5、vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。如:vector<int>和vector<string>

      ☆vector下标操作不添加元素,只能获取已存在的元素。添加元素应该使用push_back(  ) 操作。

6、遍历vector元素的操作:

  1. 下标实现:for(vector<int>::size_type ix=0 ; ix!= ivec.size() ; ++ix)           ivce[ix]=0;              //将元素值重置为0。
  2. 迭代器实现:for(vector<int>::iterator iter=ivec.begin(); iter!=ivec.end(); ++iter)     *iter=0;                 //将元素值重置为0
7、begin和end操作:
每种容器都定义了一对名为begin和end的函数,用于返回迭代器。
如果容器中有元素的话,由begin返回的迭代器指向第一个元素,由end返回的迭代器指向“末端元素的下一个

8、const_iterator类型和const的iterator类型的区别:
   每个容器类型还定义了const_iterator类型,该类型只能用于读取容器内的值,但不能改变其值。
    const的iterator对象:声明一个const迭代器时,必须初始化迭代器。并且一旦初始化后,就不能改变它的值。即它只能用来改写其指向的元素,但不能使它指向其他任何元素。几乎没有什么用处。

9、bitset类型对象的区别仅在于其长度而不在其类型。     bitset<32>   bitvec;       //32bits,全为0。
   string对象和bitset对象之间是反向转化的:string对象的最右边字符(即下标最大的)用来初始化bitset对象的低价位(即下标为 0的位)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值