C++基础
c++API: http://www.cplusplus.com/ http://zh.cppreference.com/w/cpp
c++编译器依次执行三个任务:预处理,编译,连接。
std::cin >> x1 >>x2 >>x3;
using namespace std;
using std::cout;
命名规则:
字母,数字,下划线
以字母,下划线开头,最好不超过31个字符
常量大写
大小写敏感
const
short=short int 2个字节
unsigned short = unsigned short int 2字节
int 4字节
unsigned int =unsigned 4字节
long =long int 4字节(32位机器)8字节(64位机器)
unsigned long = unsigned long int 4字节(32位机器)8字节(64位机器)
float 4字节
double 8字节
long double 10字节
指针 4字节(32位机器)8字节(64位机器)
sizeof()
1234567L (long)
0xFFFF (16进制)
010 (8进制)
1.2f = 1.2F (float)
static_cast<int>(value);
int i= (int)5.4;
\b 退格 8(ASC11)
\t 制表 9
\n 换行 10
\f 换页 12
\r 回车 13
\\ 反斜线 92
\' 单引号 39
\" 双引号 34
double static pow(double ,int) <cmath>
double sqrt(double) <cmath>
int time(0) <ctime> 返回格林威治标准时间至当前时刻所流逝的秒数
!(非) && (与) ||(或)
unsigned rand() 伪随机数 <cstdlib>
srand(seed); <cstdlib>
srand(time(0)); //设置种子,真随机
流格式控制符
<iomanip>
setw(width) 制定打印字段宽度
setprecision(n) 设置一个浮点数的精度(保持到下一个setprecision()之前)
fixed 将一个浮点数以定点数的形式输出
showpoint 将一个浮点数以带小数点,带结尾0的形式输出,即使其无小数部分
left 左对齐
right 右对齐
注:1.setprecision()用在fixed之后表示指定小数点后的位数
2.默认右对齐
3.小数点后保留6位(不一定)
enum 枚举(默认0,1,2...;可自己设置)
break;
continue;
ifstream ofstream <fstream>
in.eof() 检测文件尾
int &a=b;
function overloading(函数名一样)
int a=1;
::a 访问全局变量
static
inline
数组长度
#define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}
template <class T>
int getArrayLen(T& array){
return (sizeof(array) / sizeof(array[0]));
}
顺序搜索:逐个比较每个元素
int ls(int a[],int k ,int s){
for(int i=0;i<s;i++){
if(k==a[i])
return i;
}
return -1;
}
二分搜索:分为两半,key与mid比较
int bs(int a[], int k, int s){
int low=0, high=s-1;
while(high>=low){
int mid=(low + high)/2;
if(k==a[mid])
return mid;
if(k<a[mid])
high=mid-1;
else
low=mid+1;
}
return -1;
}
选择排序:依次找出最大值放到size-i
void ss(int a[], int s){
for(int i=0;i<s;i++){
int t=a[i];
for(int j=0;j<s-i-1;j++){
if(a[j]>a[j+1]){
int tt=a[j];
a[j]=a[j+1];
a[j+1]=tt;
}
}
}
}
插入排序:反复地将一个新元素插入到已排序的子序列中
void is(int a[],int s){
for(int i=1; i<s; i++){
int k=a[i];
int j=i-1;
for(;j>-1 && k<a[j];j--){
a[j+1]=a[j];
}
a[j+1]=k;
}
}
二维数组作为函数参数时须指明列的大小
list[i]=plist[i]=*(list+i)=*(plist+i)
数组相当于常量指针
const int * const pValue = &radius //(常量数据) (常量指针)
delete p;
delete [] p;
字符串函数 <cctype> <cstring>
size_t 是一种数据类型,等同于unsigned int
指针函数:返回值是指针的函数,本质是一个函数
int * function_name(int);//返回值类型 * 函数名(形参列表)
函数指针:指向函数的指针变量,本质是一个指针
int (*p_name)(int); //返回值类型 (*指针变量名)(形参列表);
http://blog.csdn.net/whz_zb/article/details/6842365
字符串常量的本质表现是代表它的第一个字符的地址
C语言中操作字符串是通过它在内存中的存储单元的首地址进行的,这是字符串的终极本质。
char *s 只是一个保存字符串首地址的指针变量, char a[ ] 是许多连续的内存单元
深入理解:char*, char**,char a[], char* a[]