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[]

http://blog.csdn.net/daiyutage/article/details/8604720

posted @ 2016-04-27 20:08  咸_鱼  Views(145)  Comments(0Edit  收藏  举报