charpter 3
- using namespace::name
例如using std::cin ;
//引入命名空间的某个成员
using namespace std ;
//引入命名空间stdstring 标准库
#include string
using namespace std;
string 初始化
string s1(n,’c’) 将s1初始化为连续n个字符c组成
string a(“hello”)string 的基本操作
输入string s;
cin>>s
//忽略开头的空白 直到遇到下一处空白停止
读取一行geline(cin, s)
//保留空白 ,遇到换行符停止
empty 是否为空
size 返回长度不包含’/0’s.size()
=strlen(s.c_str())
**注意size返回为无符号的整数string 加法
两侧必须有一个string 例如"hello"+"dd"
不合法string 字符的比较
isalnum() isalpha() 头文件cctype或者ctype.h http://book.2cto.com/201309/32066.html对string 对象每个字符操作
for(declaration : expression)
statement
for(auto c : str)
cout<<c<<endl;
vector 标准库
- 头文件:include vector
vector<T> v1
vector<T> v2(n,val)
- 列表初始化vector 对象
vector<T> v3{"d","b","c"}
生成了三个对象
**花括号表示列表初始化,圆括号表示构造对象 - #####vector中添加元素
push_back()在尾部添加元素 - 其他操作与string类型相似
###注:size 操作得到的类型为size_typevector<int>::size_type lenth
string::size_type lenth
迭代器使用
- 迭代器运算符
== != 表示迭代器是否指向同一个元素,或者同一个迭代器是否只指向尾部
- iter 返回对改元素的引用
iter->mem == (*iter).mem
++iter –iter
如果为const_iterator 只能读,不能写
例如string::const_iterator it
vector<int>::const_iteratot it
begin(),end() 根据对象确定是否为常量
cbegin(),cend() 返回为常值迭代器
- iter 返回对改元素的引用
- vector 遍历方法
(1)
for(auto a:s){...}
(2)auto a = s.begin()//vector<T>::iterator a=s.begin()
for(;a!=s.end();++a) {...}
数组
size_t 类型 用来表示数组下标 足够大足以存任意对象的大小
头文件cstddef // stddef.hunsigned int
size_t 类型表示C 中任何对象所能达到的最大长度。它是无符号整数, 因为负数在这里没有意义。它的目的是提供一种可移植的方法来声明与系统中可寻址的内存区域一致的长度。size_t 用做sizeof 操作符的返回值类型,同时也是很多函数的参数类型,包括malloc 和strlen。在声明诸如字符数或者数组索引这样的长度变量时用size_t 是好的做法。它经常用于循环计数器、数组索引,有时候还用在指针算术运算上。
数组的遍历 也可使用for(auto i : scores);
数组begin 和 end ,int *beg = begin(ia);
注意:使用迭代器过程中不能使用push_back