使用using namespace::name声明的话,就可以直接引用名字了
using声明每次只能声明一个名字
如果用using声明了string类型,那么系统可以使用几个默认构造函数
string s2(s1) 将s2初始化成为s1的一个副本
string s3("value") 将s3初始化成为一个字符串字面值副本
string s4(n, 'c') 将s4初始化为字符'c'的n个副本
从标准输入读取string,会读取并忽略开头所有的空白字符,读取字符直至再次遇到空白字符,读取终止针对string对象的操作函数都在cctype头文件中定义
vector(容器)是一个类模板,使用模板可以编写一个类定义或者函数定义。
容器的迭代器(iterator)就是对容器内的元素进行遍历
迭代器可以进行算术操作,比如加/减一个整型值得到新的迭代,或者彼此加减来计算距离
解引用(*操作符):使用解引用操作符来访问迭代器所指向的元素
bitset对象的初始化有四种方式,其中
bitset<n> b(s, pos, n) b是s中从位置pos开始的n个位的副本,如果string对象的字符个数小于bitset类型的长度,则高阶位将置为0
与vector不同,一个数组不能用另外一个数组初始化,也不能将一个数组赋给另一个数组。
vector和数组都可以用下标操作符访问,vector下标的类型为vector::size_type,数组下标的类型为size_t
指针初始化可以有以下四种方式:
1.0值常量表达式; 2.类型匹配的对象的地址; 3.另一对象之后的下一地址; 4.同类型的另一个有效指针
“void *”类型的指针可以保存任何类型对象的地址
给指针赋值或通过指针赋值:如果对左操作数进行解引用,则修改的是指针;如果没有使用解引用操作,则修改的是指针本身的值,(即指向另一个对象地址)
引用也可以指向另一个对象,但赋值操作不会改变引用关联的对象,只是改变对象值而已。
如果指向const的指针所指的对象并非const,那么可直接给该对象赋值或间接地利用普通的非const指针修改其值。
const指针——本身的值不能修改,即使给它赋相同的值。
不要在C++程序中使用C风格字符串,万一必须使用,一定不要遗漏字符串结束符null。
C语言中使用一堆标准库函数malloc和free为自由存储区分配存储空间,而C++语言则使用new和delete表达式实现相同的功能。
typedef类型定义可使指向多维数组的指针更容易读、写和理解。比如
typedef int int_array[4];
int_array *ip = ia;