标准库类型:string vector bitset

 

string

 

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内容,以及提供各种有用的操作。

 

 

#include <string>

using std::string

 

初始化string对象的方式

string s1;                          默认构造函数,s1为空串

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

string s3("value");            将s3初始化为一个字符串字面值副本

string s4(n, 'c');                将s4初始化为字符‘c’的n个副本

 

string对象的操作

s.empty()                      如果s为空串,则返回true,否则返回false

s.size()                          返回s中字符的个数

s[n]                                返回s中位置为n的字符,位置从0开始计数

s1 + s2                          把s1和s2连接成一个新字符串,返回新生成的字符串

s1 = s2                          把s1内容替换为s2的副本

v1 == v2                        比较v1与v2的内容,相等则返回true,否则返回false

!=, <, <=, >, >=              保持这些操作符惯有的含义

 

注:size操作返回的是string::size_type类型的值

 

string对象中字符的处理

#include <cctype>

cctype头文件定义的函数  
isalnum(c)            如果c是字母或数字,则为true.
isalpha(c)            如果c是字母,则为true.
iscntrl(c)            如果c是控制字符,则为true.
isdigit(c)            如果c是数字,则为true.
isgraph(c)            如果c不是空格,但可打印,则为true.
islower(c)            如果c是小写字母,则为true.
isprint(c)            如果c是可打印的字符,则为true.
ispunct(c)            如果c是标点符号,则true.
isspace(c)            如果c是空白字符,则为true.
isupper(c)            如果c是大写字母,则true.
isxdigit(c)           如果c是十六进制数,则为true.
tolower(c)            如果c是大写字母,则返回其小写字母形式,否则直接返回c.
toupper(c)            如果c是小写字母,则返回其大写字母形式,否则直接返回c.

 

 

更多关于string类型的文章

http://blog.csdn.net/longcjx/archive/2010/10/23/5961438.aspx

 

 


 

vector

 

vector是同一种类型的对象的几何,每个对象都有一个对应的整数索引值。和string对象一样,标准库将负责管理与存储元素相关的内存。

 

#include <vector>

using std::vector;

 

初始化vector对象的方式
vector<T> v1;              vector保存类型为T的对象.默认构造函数v1为空
vector<T> v2(v1);        v2是v1的一个副本.
vector<T> v3(n,i);        v3包含n个值为i的元素.
vector<T> v4(n);          v4含有值初始化的元素的n个副本.

 

 vector操作
v.empty()            如果v为空,则返回true,否则返回false.
v.size()             返回v中元素的个数  //vector<int>::size_type
v.push_back(t)       在v的末尾增加一个值为t的元素.
v[n]                 返回v中位置为n的元素.

 

 vector的下标操作
for (vector<int>::size_type ix=0; ix!=ivec.size(); ++ix)
   ivec[ix]=0;

 

 

 

迭代器简介

 

1.容器的iterator类型
vector<int>::iterator iter;

2.begin和end操作
vector<int>::iterator iter=ivec.begin();  //ivec.end()

3.vector迭代器的自增和解引用运算
用解引用操作符(*操作符)来访问迭代器所指向的元素
*iter     //ivec[0]
*iter=0;  //把ivec[0]这个元素的值赋为0.
++iter

for (vector<int>::size_type ix=0; ix!=ivec.size(); ++ix)
   ivec[ix]=0;

for (vector<int>::iterator iter=ivec.begin();
     iter!=ivec.end(); ++iter)
   *iter=0;

 


 

bitset

 

 

 有些程序要处理二进制位的有序集,每个位可能包含0(关)值或1(开)值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供的bitset类简化了位集的处理。

 

#include<bitset>

using std::bitset;

 

 

 初始化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);       b是s中从位置pos开始的n个位的副本

 

 

 

bitset对象上的操作

b.any()           b中是否存在置为1的二进制位?
b.none()          b中不存在置为1的二进制位吗?
b.count()         b中置为1的二进制位的个数
b.size()          b中二进制位的个数
b[pos]            访问b中在pos处二进制位
b.test(pos)       b中在pos处的二进制位是否为1?
b.set()           把b中所有二进制位都置为1
b.set(pos)        把b中在pos处的二进制位置为1
b.reset()         把b中所有二进制位都置为0
b.reset(pos)      把b中在pos处的二进制位置为 0
b.flip()          把b中所有二进制位逐位取反
b.flip(pos)       把b中在 pos 处的二进制位取反
b.to_ulong()      用b中同样的二进制位返回一个unsigned long值
os << b           把b中的位集输出到os流

 

注:count操作的返回类型是标准库中命名为size_t的类型.

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值