愿四域友乐享冬至
雨漱间尖山峦平,
旦改乡音亦难云。
行军侧卧百朝行,
鱼虾百万亿金轮。
至东多食饺,南地更团圆?
__________________________脩于二零一六年冬至日
12月 21
__________________________脩于二零一六年冬至日
11月 21
在将左程云的《程序员面试代码指南》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]); |
未完待续!
11月 14
一、动态数组的优点:
动态分配内存,用一个指针传值方便。
二、为什么我要用动态数组?
在程序中遇到数组的传递时,函数中的创建的数组由于在函数作用域
外无效,所以不能有效的传递。
三、动态数组实例:
一维动态数组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include<iostream> using namespace std; int main() { //使用new,在程序运行时动态分配空间 int * arr = new int[10]; //赋值方法和普通数组通用 for(int i = 0 ; i < 10 ; i++ ) { arr[i] = i; } //释放空间 delete []arr; return 0; } |
使用new 和delete时应当注意:
1.不要使用delete来释放不是new分配的内存
2.不要使用delete来释放同一个内存块两次
3.如果使用new[]维数组分配内存,则应使用delete[]来释放
4.如果使用new[]来为一个实体分配内存,则应使用delete(没有方括号)来释放内存
5.对空指针使用delete是安全的
二维动态数组:
两种二维数组开辟空间的方法:
方法1:
1 2 3 4 5 6 7 8 9 | int r,c;//r is rows ,c is cols r = 5 ; c = 8 ; //method 1 to initialize a dynamic-planar arr int **arr = new int*[r]; for (int i = 0 ; i <r ; ++i) { arr[i] = new int[c]; } |
上面方法的创建的二维数组是不连续的,所以需要进行寻址,
如果要进行赋初值,必须一一赋值,而不能一次用:
arr[0]={0}将arr全部赋值为0。
寻址和赋初值为0:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //method 1 to initialize a dynamic-planar arr //寻址 for(int i = 1 ; i < r ; ++i) { arr[i] = arr[i - 1] + c ; } //赋初值为0 for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++ ) { arr[i][j] = 0; } } |
方法2:
1 2 3 4 5 6 7 8 9 10 11 | //method 2 to initialize a dynamic-planar arr int ** arr = new int*[r]; int size = r*c; arr[0]= new int[size]; for(int i = 1 ; i < r ; i++) { arr[i] = &arr[0][i*c]; } //using std::fill to fill 0 std::fill( &arr[0][0], &arr[0][0]+r*c, 0); //上面的方法1寻址后即可用此方法填满 |
二维动态数组空间释放:
1 2 3 4 5 | for(int i = 0 ; i < r ; i++) { delete [] arr[i]; } delete [] arr; |
如果二维动态数组作为返回值或者参数的方法见完整函数:
https://github.com/ghostxiu/justfortest/blob/master/arr.cc
10月 12
赠友姜浩
脉乡美酒一滴醉,直言真语扰人烦。
江南才俊多腼腆,将士北转霸不言。
炼狱噬魂身百死,醉梦归来战一回。
漫地桂香皆不问,蹄踏北地血无痕。
莫做莺燕逆修心,疯癫一怒惊破天?!
9月 26
第一次接触图像是在研究生前,刚去公司,老板让做了个GIS地图。呃,是cesium(依赖于一个JS库),后面做了一个简单的VR应用。但是至此为止,我仍然对计算机图形学一无所知,现在我就把我遇到过的东西写下来,希望能够帮助到后来者。
去图案书馆借了本计算机图形学(OPGL三维渲染)的书,看起来很新,2016年出版的。看了第一章介绍了OPENGL和物理渲染的区别,以及优势。结果到了第二章就傻眼了!!!作者用的OPENTK开发工具包官网已经打不开了,直接上了半截程序,也不说运行环境。做了以下尝试:
1.继续寻找opentk这个工具包;
2.SharpGL(VS2012或者2010的拓展):结果不支持咱的VS2015
3.Csgl(上了官网一看是2003年的最新版,果断放弃)
最后决定还是用C++吧,网上VS2015+Opengl的配置:
原文地址:http://blog.csdn.net/Jacketinsysu/article/details/49563139
最后我决定放弃手里那本书,换上红宝书和蓝宝书 :
[Dave_Shreiner,_The_Khronos_OpenGL_ARB_Working_Gro
[Richard_S._Wright]_OpenGL_SuperBible_Comprehensi
9月 16
曾祈求上天多给一些时间于你我
但,
不知是儿时的某次贪玩
或是一不小心的懒惰
总让我错过了幸运
你是一只受伤的鱼儿
我现在只有一个小小的池塘
但我知道等你伤好
必将翱翔于海上
果子的味道很诱人
但我知道
没有成熟前摘下的只有酸涩
喜欢一个人
喜欢和她一起的日子
但我不会什么都依着妳
因为妳还是个孩子
真希望妳可以快快长大
遇见,是最好的礼物
分别,是为了更好的遇见
8月 22
修于列车之上
又到一年归乡日,频思家中念己人。 天音地泽留不住,唯心畏碍扫前尘!
“畏碍”通"为爱”: 此处两层含义, 一是为了前程扫清障碍,回归世界本源, 二是为了喜欢的人,奔走。
杭州风景很美,但是却不是我的故乡 为了前程,为了梦想 为了喜欢的人 我选择来的到这里 但是不知道, 当我成功时 你是否在我身边?
8月 08
_____________修于公元二〇一六年八月八日
世风冉冉竹南扰?
红尘纷繁由它去。
烈焰熊熊凡董大,
叮铃咚隆领子妙!
7月 04
由于Windows下的压缩软件是winrar
为了方便,
所以我们经常会把文件压缩后上传到服务器
下面就是Centos下解压RAR文件的方法
1.默认的yum源中是没有这个软件包的,所以我们去rarlinux的官网去找到适合紫的安装包:
http://www.rarsoft.com/download.htm(比我这边是64位的linux)
2.下载:
wget http://www.rarsoft.com/rar/rarlinux-x64-5.4.b3.tar.gz
3.安装:
tar -zxvf rarlinux-x64-5.4.b3.tar.gz
cd rar
make
cp unrar /usr/bin/unrar
cp rar /usr/bin/rar
4.解压或压缩文件:
a 添加文件到操作文档
例:rar a test.rar file1.txt 若test.rar文件不存在,则打包file1.txt文件成test.rar
例:rar a test.rar file2.txt 若test.rar文件已经存在,则添加file2.txt文件到test.rar中
(这样test.rar中就有两个文件了)
注,如果操作文档中已有某文件的一份拷贝,则a命令更新该文件,对目录也可以进行操作
例:rar a test.rar dir1
c 对操作文档添加说明注释
rar c test.rar
(会出现Reading comment from stdin字样,然后输入一行或多行注释,以ctrl+d结束)
cf 添加文件注释,类似上面的c,不过这个是对压缩文档中每个文件进行注释
cw 将文档注释写入文件
例:rar cw test.rar comment.txt
d 从文档中删除文件
例:rar d test.rar file1.txt
e 将文件解压到当前目录
例:rar e test.rar
注:用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连dir1里面的所有文件
也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压
k 锁定文档
例:rar k test.rar 锁定文档后,该文档就无法进行任何更新操作了
r 修复文档
例:rar r test.rar
当rar文件有问题时,可以尝试用该命令进行修复(鬼知道有多少用)
s 转换文档成自解压文档
例:rar s test.rar
会生成一个test.sfx的可执行文档,运行它的效果就相当于rar x test.rar,
适合于向没有rar的用户传输文件
t 检测文档
例:rar t test.rar
检测test.rar的完整性,一般压缩完大型文件准备传输前最好用这个命令来确保文件的正确性
x 带路径解压文档中内容到当前目录
例:rar x test.rar
这样解压的话,dir1就会保持原来的目录结构
近期评论