C++头文件

1
2
3
4
5
6
7
8
#include<bits/stdc++.h>

using namespace std

int main()
{
return 0;
}

STL

看这一篇就够了~

基础知识

转义字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//Cpp里有String类型,不用再用数组储存字符串了
string greeting = "hello, runoob";
//define规定常量(常量通常写成大写字母)
#define LENGTH 10
//const规定指定类型的常量
const char NEWLINE = '\n';
//按位与
p&q
//按位或
p|q
//按位异或
p^q
//取反
~p
//返回变量所属类型的字节数
sizeof()
//条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y。
Condition ? X : Y
//强制类型转换
int(2.200)
//成员
.
//指针成员
->
//有string类型,可以直接赋值,这样的字符串完全具有数组的特征
string str = "Hello, World!";
//同时也可以当做变量看,可以赋值
string str1 = str;
//但是string不是C风格的字符串,不以'\0'结尾
//返回 C 风格的字符串(以 null 结尾)。
char* cstr = str.c_str();
//switch语句
switch(expression){
case constant-expression :
statement(s);
break; // 可选的
case constant-expression :
statement(s);
break; // 可选的

// 您可以有任意数量的 case 语句
default : // 可选的
statement(s);
}
//函数:别忘了要在开头声明
return_type function_name( parameter list )
{
body of the function
}
//输入输出
cin>>name;
cin>>name>>age;
cout<<"xxx"<<str<<endl;
//标准错误流
cerr<<"error"<<str<<endl;
//结构体
typedef struct name{
int age;
struct name* next;
}another name;
//类定义
class name
{
public://访问修饰符:
//变量
//方法
};//分号结束一个类
//类对象定义(类对象指的是由类定义的对象)
name A;//声明对象A是name类
//访问类对象的成员
A.height
//指向自己的指针(this是指针!)
this
class name{
private:
int value;
public:
void f(int a)
{
this->value=a;
}
}
//public:一类里的方法(不管有没有写出去)不用加前缀,main里对象.变量
class Line
{
public:
double length;
void setLength( double len );
};
void Line::setLength( double len )
{
length = len;
}
// 程序的主函数
int main( )
{
Line line;
line.setLength(6.0);
line.length = 10.0;
return 0;
}
//private:一类里的方法(不管有没有写出去)不用加前缀,其他类里不可访问
//protected:在子类里可访问,不用加前缀
//继承
class Animal{

};
class Dog:public Animal{

};
//多继承
class Dog:public Animal,public Life{

};
//重载
//动态内存分配
double* a= new double;
//检查自由储存区是否还有内存
double* pvalue = NULL;
if( !(pvalue = new double ))
{
cout << "Error: out of memory." <<endl;
exit(1);
}
//释放内存
delete a;//a是指针

库函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//cmath库
cos()
sin()
tan()
log()//自然对数
pow(x,y)//x的y次方(x,y,返回值都是double类型,整数最好自己写)
abs()//整数绝对值
fabs()
hypot()//参数为一个直角三角形的两个直角边,函数会返回斜边的长度。
sqrt()//返回:double 开平方
//排序,cmp是可选参数
sort(numbers.begin(),numbers.end(),cmp);
sort(numbers.begin(),numbers.end());
//在容器中查找与给定值匹配的第一个元素,找到了,it指向匹配元素,没找到,则为尾后迭代器
auto it =find(numbers.begin(),numbers.end(),value);
//复制算法,将一个范围内的元素复制到另一个容器或数组
copy(numbers.begin(),source.end(),destination);
//比较两个容器或两个范围内的元素是否相等。
bool result =equal(v1.begin(),v1.end(),v2.begin());
bool result =equal(v1.begin(),v1.end(),v2.begin(),cmp);
//常用
std::cout << (result ? "Vectors are equal." : "Vectors are not equal.") << std::endl;
FILE *f=fopen("example","w");
fclose(f);
//格式化读写
fscanf(f, "%d %f", &number, &pi);
fprintf(f,"xxx");
fprintf(f, "%d %fn", 42, 3.14159);
//用于格式化输出到字符串和从字符串中读取
char a[100];
sprintf(a,"Value: %d", value);
sscanf(a, "Value: %d", &readValue);
//读写一个字符
char c = getc(f);
putc('A', f);
//读写一行,读了放在a数组里,最多不超过100个字符
fgets(a,100,f);
fputs("Hello, World!\n", f);
//常用结构
char a[100];
while (fgets(a, 100, f) != NULL){}
//常用结构
int main() {
FILE *file = fopen("example.txt", "w"); // 打开文件用于写入
if (file == NULL) {
perror("Error opening file");
return 1;
}
fclose(file); // 关闭文件
return 0;
}


类/对象方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//输出
ofstream outfile;
outfile.open("要打开的文件名");
outfile<<.....<<endl;
outfile.close();
//输入
ifstream infile;
infile.open("xxx");
infile>>data;
infile.close();
//
cin.getline()
cin.ignore();
//+连接字符串
string result = str1 + str2;
str.size()
str.empty()
//获得子字符串
string sub=str.substr(beginlocation,length);
//返回查找串的起始位置,返回数组下标
str.find("World")
//从位置 pos 开始,替换 5 个字符为 "C++"
str.replace(pos,5,"C++");
//在指定位置插入内容。
str.insert(pos,"xxx");
//删除指定位置的字符或子字符串。
str.erase(pos, length);
//比较两个字符串。
int result = str.compare("other");
//查找第一个匹配的位置,返回数组下标
str.find_first_of("xxx")
//查找最后一个匹配的位置,返回数组下标
str.find_last_of("xxx")