【C++ Primer】标准库类型

三、标准库类型


1. 头文件书写

在头文件中应该只定义确实需要的东西,因此,应该使用完全限定的标准库名字,如std::cout


2. string

string的读入是遇到空白字符就会终止,所以用 cin>>a; 输入"hello world"得到的a=hello;

可以使用getline(cin, line)来读取整个字符串,返回值也是istream


string.size()的返回类型是string::size_type,其与unsigned型具有相同的含义,不要把size的返回值赋给一个int变量;其下标值也是string::size_type类型。


string比较:任意大写字母小于任意小写字母,比较ASCII码

string类型通过[]来访问单个字符


cctype头文件中定义了一系列有用的函数:isalnum,isalpha,isdigit等等


c++中标准库中包含C标准库,一般将c中的"****.h"变成了"c****",两者的内容是一样的,只是后者更适用于c++程序。而且c****中的定义的名字都定义在了命名空间std中;

string在赋值的时候如果中间出现“\0”,则只会记录“\0”之前的标志: string a = "hello\0 word",则a表示的是"hello"


3. vector

vector可以在运行时高效的添加元素。


vector<int> ivec(10),表示初始的vector长度为10,且所有值都初始化为0;

添加一个元素:v.push_back()

v.size()的返回类型为vector<T>:size_type


for循环书写:

v.size()的返for(vector<int>::size_type ix=0; ix != ivec.size(); ++ix)

注意使用的是ivec.size()来进行判断,因为vector可能是动态增长的,同时使用"!="而不是"<",此部分在后面会有解释

difference_type用于表示两个迭代器间的距离,相当于signed,因为相减之后可能为负数


迭代器:

iterator.begin()返回的迭代器指向第一个元素,但itetator.end()不指向任何元素。

const_iterator只能读,不能写,可以用于读取const vector



4. bitset

初始化:

bitset<32> bit;  bit同样可以用于 与或非、抑或操作。


bitset<32> bit(0xffff); 根据bitset的大小将unsigned long转为位,位充足则高位置为0,,不充足则舍弃高位


bitset<32> bit("001100001"); bitset的赋值方式与string的排列刚好相反 

bitset<32> bit(str, pos, n(n可省略))

bit.size(),bit.count()返回的类型是size_t,定义在cstddef头文件中,是一个与机器相关的unsigned类型,但是大小足以保证。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值