一、变量和基本类型
const 常数限定符
- const 在定义时必须进行初始化,并且一旦初始化后,其值不能进行修改;
- 默认情况下全局域的const变量只能在本文件使用,无法被外部文件访问;若需被整个程序访问,需定义时指定const变量为extern。
<pre name="code" class="cpp">//file_1.cc //define and init a const that is accessible to other files extern const int BufSize = 512; //file_2.cc extern const int BufSize; //use BufSize in file_1.cc
引用
- 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
- 引用的声明方法:类型标识符 &引用名=目标变量名;
【例1】:int ival; int &refVal=ival; //定义引用refVal,它是变量ival的引用,即别名
说明:
(1)&在此不是求地址运算,而是起标识作用。
(2)类型标识符是指目标变量的类型。
(3)声明引用时,必须同时对其进行初始化。
(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。
(5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,对引用求地址,就是对目标变量求地址。&refVal与&ival相等。
- const 的引用可以绑定到不同类型变量或者常数,如:int i = 1; const int &ra = 42; const &rb = ra + i;
枚举enum
- enum modes {input, output, append}; 默认第一个枚举元素赋值是0,后面元素比前面大1.
- enum Forms {shape = 1; sphere, cylinder, polygon}; 第一个元素显式赋值,后面元素依次+1, sphere = 2; cylinder = 3。
struct & class
- 唯一区别在于默认访问级别不同,struct默认为public,class默认为private。
二、标准数据库
命名空间using声明
使用
using声明后可以不加前缀情况下使用命名空间中名字,格式如下:
using namespace::name
常用声明如下:
using std::cin; using std::cout; using std::string; using std::endl; using std::vector;
标准库string类型
- 初始化: string s; 默认构造函数,s为空字符串 string s2(“value”); 初始化为“value” 。
- 读写: cin >> s 1. 读取并忽略开头所有空白字符(‘ ’, ‘\t’, '\n'); 2.再次遇到空白字符,结束一次读取。
标准库vector类型
- 容器vector中所有对象必须是同一类型的;
- vector<T> v; vector保存类型为T的对象,默认构造函数v为空;vector<string> ivec(10); 10个元素,均初始化为0。
while(cin >> words)
{
ivec.push_back(words); //像vector后面添加元素
}
for(std::vector<string>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter) //迭代器iterator
{
tmp = *iter;
for(string::size_type j = 0; j != tmp.size(); ++j){
tmp[j] = tolower(tmp[j]);
}
*iter = tmp;