cheng_you_know

学而时习之!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一. 命名空间

命名空间的using声明,可以在需要加前缀namespace::的情况下,访问命名空间中的名字。

常用的using namespace std; C++中引入命名空间,主要是为了防止名字冲突,方便管理。

二. 标准库string类型

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

(1)判断字符串空 s.empty();

(2)返回字符个数s.size(),类型是size_type是一个unsigned类型,不要把size返回值赋值给一个int

(3)支持+重载,但是注意第一个必须是string对象,而不能是字符串常量。

(4)字符常用函数,在cctype头文件中定义,比如isalpha(),isdigit(),tolower(),toupper(),isprint()等等

(5)支持下标操作访问

#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cin>>s;  //读取并忽略开头所有空白字符,读取到空白字符停止
cout<<s<<endl;
for(string::size_type index = 0; index != s.size(); ++index)
if(isalpha(s[index]))
  cout<<s[index];
return 0;

}
2.getline读取整行文本
string line;
while(getline(cin,line))// 直到文本末尾
    cout<<line<<endl;

 

 

在读取整行,还可以gets(char *s)函数;

3.string类赋值,实现会遇到效率上问题,如string st1,str2=”hello world ”; str1 = str2; 赋值必须要先把str1的内存释放掉,然后申请str1足够的内存放置str2的副本。

4.C++和C头文件一点规则,C标准库文件命名形式是name.h ,而C++版本则命名为cname,少了后缀.h,而在前面加c,表示这个头文件来自C标准库。

三.标准库vector类型

需包含头文件#include <vector>

1.vector容器,一个容器中的所有对象都必须是同一种类型,对象动态增长。

2.常用操作 v.empty(); v.size(); v.push_back(); 同样支持下标访问操作;

for(vector<int> ::size_type ix =0; ix != ivec.size(); i++x) //在循环中计算好处,是当有增加元素时候,也能正常
    ivec[ix] = 0;
四.迭代器介绍
包含头文件#include<iterator>
1.如vector<int>::iterator iter = ivec.begin();
ivec.end()指向末端元素的下一个,表明指向了一个不存在的元素,因此不能对end()解引用。迭代器解引用,*iter =0 和iter[0]一样;下面用迭代器来编写循环
for(vector<int>:: iterator iter = ivec.begin() ;iter !=ivec.end(); ++iter)
    *iter = 0;

 

 

 

 

2. const_iterator的类型,该类型只能用于读取容器内容,但不能修改值。

3.区别const_iterator 和const iterator,后者指向const的迭代器,必须初始化就赋值,一旦初始化,就不能改变迭代器值,因此这类迭代器几乎是没什么用处的。

4.迭代器也可以计算操作,移位等等

五.标准库bitset类型

主要用于处理二进制位的。可以用下标访问

1.初始化:

bitset<n> b; //b有n位,每位都是0  

string s("1100");

 bitset<n> b(s) //用string对象初始化

bitset<32>bitvec32(oxffff);

cout<<"bitvec32: "<<bitvec32<<endl;

2.常用操作

b.any(); //b中是否存在置1的二进制

b.none();//b中不存在置1的

b.count();//b中是置1的二进制个数

b.size();

b[pos];

b.set();

b.set(pos);

b.reset();

b.flip();

b.flip(pos);等等

posted on 2013-06-15 21:26  cheng_you_know  阅读(248)  评论(0编辑  收藏  举报