home
list
tags
ip_location
gfwlist
torrent
log
about
new
proxy
todo
c 高级语法
up:2014-10-03 11:14:33 edit:2015-04-21 01:24:00 view:1195
函数指针
int (* func_point)(int ,int);
返回函数指针的函数
typedef int (* func_point_type)(int ,int);
func_point_type func_func(int);
不用typedef
int (* func_func(int))(int ,int); //定义了一个接收一个int参数的,返回一个接收两个int参数,返回值是int的函数的指针
指针数组
int * list_of_point[10];
数组指针
int (* point_to_list) [10];
动态二维数组
int m,n;
int (*array_point)[n]=(int(*)[n])new int[m*n]; (gcc可通过,vs2010不支持)
array_point[0][0]=10;
数据是指针的指针数组
int ** list_of_point_to_point =new int * [size];
关于const
指向数据不可变
const int * x=5; 或 int const * x;
指针本身不可变
int * const x=5;
const函数
[return-value][class]::[member-function]([args]) const{/*do something*/}
这样函数里this指针是const的,即不会改变对象的属性。
重载const函数,const对象自动调用。
const int& myData::getData() const{ return data;}
c可变参数(不定参数)
不定参数版Max
template
T mymax (int count, ... ) {
va_list ap;
va_start(ap,count);
T t=va_arg(ap,T),tt;
count --;
while(count--){
tt=va_arg(ap,T);
t=(tt>t)?tt:t;
}
return t;
}
调用mymax
(4,1,2,3,-2)
不用第三个变量交换a,b的值
int a=10,b=20;
a += b;
b = a-b;
a -= b;
关于stl容器size()的效率
有次看到人说是O(n),然后就一直自己写变量追踪个数后来今天看了头文件的源码,发现vector和map都是O(1)的实现,也就是多了函数调用而以,其它应该也差不多。
面试
异常处理,内存管理(智能指针==引用亡灵?,与垃圾回收比较),算法(排序,堆,快,基数排序,查找二叉树,平衡二叉树,红黑树,DP,背包),c++继承多态原理,
项目,查重(三级,注释,空行,[去除无用语句,函数调用,输入输出,变量关系,识别赋值语句],统计词频,转义词频,最大公共子串_子序列),全内存,采用gcc编译sygwin,安全,网页与判题独立,(比赛,考试,练习的得分与排名,等级控制),结果比较,部分给分,pe
结构体对齐,调用方式(入栈顺序,清理,不定参数)
继承,多态,virtual,stl,异常与构造函数,构造函数调用顺序
STL
有
7
种主要容器:
vector,list,deque,map,multimap,set,multiset.
虚拟继承,向上继承二义性
TAGS:
c c++ 高级语法
编辑
删除
not in sinaapp