在将左程云的《程序员面试代码指南》JAVA版转化为C++版中遇到的问题之一就是JAVA的一切皆引用:
C++引用:
1 | void swap(int &a,int &b) |
两种写法,比如用来交换数组a的i和j两个位置的值:
写法1:
1 2 3 4 5 6 7 8 9 10 11 | //1:声明为指针型: template<class T> void Swap(T *a,T *b) { T tmp ; tmp = *a ; *a = *b; *b = tmp ; } //调用时: Swap(&a[i],&a[j]); |
写法2:
1 2 3 4 5 6 7 8 9 | //2:声明为引用类型; void Swap(T &a,T &b) { T c = a; a = b ; b = c; } //调用时: swap(list[i],list[k]); |
未完待续!
近期评论