linux:
find path -option [ -print ] [ -exec -ok command ] {} ;
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
and:逻辑与,在命令中用-a 表示
or:逻辑或,在命令中用-o 表示
not:逻辑非,在命令中用!
-type x 查找类型为 x 的文件, x 为下列字符之一:
b 块设备文件
c 字符设备文件
d 目录文件
p 命名管道(FIFO)
f 普通文件
l 符号链接文件(symbolic links)
s socket 文件
-
amin n 查找 n 分钟以前被访问过的所有文件。(+表示 n
分钟之前, -表示 n 分钟之内, +号和-号都不能省略) -
cmin n 查找 n 分钟以前文件状态被修改过的所有文件。
-
mmin n 查找 n 分钟以前文件内容被修改过的所有文件。
-
atime n 查找 n 天以前被访问过的所有文件。
-
ctime n 查找 n 天以前文件状态被修改过的所有文件。
-
所谓引用其实就是变量的一个别名。传引用是C++里面引入的一种参数传递方法。传引用实际上也是传递的实参的指针,所以能够修改实参的值。 但是,引用的特性告诉我们,一旦引用初始化后,这个引用就不能再改变。所以,传递引用实际上是拥有传值的方便简单,也同时 具备了传指针的高效,又没传指针的危险,相对安全。
void func(int &x)//func采用了传引用的形式
{
x = x+1;
printf(“x=%d\n”, x);
}
int main(void)
{
int a = 0;
func(a);//把实参a的引用传递给了函数func
printf(“a=%d\n”, a);
return 0;
}
分析:func采用传引用的方法定义,实参a引用传递给函数func之后,func能够修改实参的值。所以上面的程序执行结果为:
x=1
a=1
vim:
在命令模式下输入:new 2.c //表示再打开一个 vim,是横向的 用
vnew 2.c 表示纵向
也可以通过:split vsplit sp vsp, 两个窗口之间进行切换的方
式: Ctrl+w,w
块操作:
v 可视化块选择状态, 选中块之后, 可以对块进行删除(d),
复制(y),剪切(x)
yy 复制光标所在的整行
[n]yy 从光标开始往下复制 n 行,[n]表示一个整数
p 将复制后的文本粘贴到光标处
u 撤销上次操作
include一个定义结构体的文件typedef.h
编译出现了error: ‘string’ does not name a type
要在string改为std::string就OK了
自己定义一个typedef.h文件,这样也行:
using namespace std;
#include “typedef.h”
'xxx’does not name a type
出现的原因可能有下面几点:
1、没有加调用函数的头文件
2、不存在xxx命名空间
3、包含头文件,但是调用的时候,类名写错了
在命令模式中输入 gg=G 可以自动对齐
c++:
C风格的字符串: const char *效果等同于std::string
构造函数初始化列表整型是直接赋值,指针是new出一块空间,再在函数体中strcpy赋值。
类外重载赋值运算符函数格式是: 类名& 类名+运算符()这种格式。
static:
//静态成员函数的参数列表之中不包含this指针(例如static void print())
//静态成员函数不能访问非静态数据成员,非静态成员函数
//
//只能访问静态数据成员和静态成员函数
//静态数据成员的初始化是在类之外进行的
静态成员函数不属于哪一个具体的成员,必须采用类名::成员函数进行调用。
const:
const成员函数内部只能调用const成员函数(例如void print() const)
在其内部是不能修改数据成员
//如果只有const成员函数,非const对象是可以调用const成员函数的
//当const版本和非const版本的成员函数同时出现时,非const对象调用非const成员函数
//const对象只能调用const成员函数