C++基础知识
1.课程内容和目标
- 掌握C++基本语法,可以独立编码并检查错误(debug)
- 掌握C++基本数据类型、函数、数组等用法
- 掌握STL中常用容器和库函数的用法
- 可以独立理解代码含义,完成一些简单的题目
2.C++版本区别与选择
C++版本 | 描述 |
---|---|
C++98(ISO/IEC 14882:1998) | C++的第一个版本于1998年10月发布,有一些较老的oj在使用 |
C++03(ISO/IEC 14882:2003) | 在这个版本中的C++中,值初始化是在2003年2月引入的 |
C++11(蓝桥杯选用) | 它于2011年8月发布。这个C++修订版引入了Lambda表达式、委托构造函数、统一初始化语法、自动类型推导auto、nullptr、decltype、Rvalaue References等。 |
C++14 | 它于2014年8月发布。此版本中添加的功能包括多态 lambda、数字分隔符、通用lambda捕获、变量模板、二进制整数文字、引用字符串等。 |
C++17 | 它于2017年12月发布。它引入了折叠表达式、十六进制浮点文字、u8字符文字、带有初始化程序的选择语句、内联变量等。 |
C++20 | 它于2020年12月发布。包括的一些新功能包括: 测试宏3路比较、运算符<=>和运算符==()=默认值、新属性: [[no_unique_address]]、[likely]]、[[[unlikely]] |
对于上面的版本,我们不需要过多的了解,只需知道蓝桥杯采用的时候C++11标准,且指定的编译器为Dev C++。下面将介绍如何将Dev C++编译器使用C++11的版本。
输入指令:
-std=c++11
3.代码格式与语法基础
3.1 案例一-输出案例
代码
#include <bits/stdc++.h> // 使用万能头文件
using namespace std;
int main() { // main函数是C++中内置的启动函数,也就是程序入口
cout << "Hello, World!" << endl; // 利用 cout 将字符串输出, 字符串用双引号扩起
printf("Hello, World!"); // 利用 printf 将字符串输出
return 0; // 函数遇到return 会立即结束。返回0表示main函数正常结束
}
输出结果
Hello, World!
Hello, World!
3.2 案例二-基本数据类型案例
代码
#include <bits/stdc++.h> // 使用万能头文件
using namespace std;
int main() { // main函数是C++中内置的启动函数,也就是程序入口
int x = 3; // 整数
double d = 3.14; // 浮点数(小数) d
char ch = 'A'; // 字符ch, 注意区分字符串
char s[] = "hello";// 字符串s
bool b = true; // 布尔值(即真假值) b true-1, false-0
cout << x << '\n'; // '\n'是换行符号,比endl更快
cout << d << '\n';
cout << ch << '\n';
cout << s << '\n';
cout << b << '\n';
return 0; // 函数遇到return 会立即结束。返回0表示main函数正常结束
}
在C++中,true 的值被定义为整数值1。这是因为C++的布尔类型在内部被表示为整数值,其中 true 被定义为非零值(通常是1),而 false 被定义为零值。
输出结果
3
3.14
A
hello
1
4. 代码案例
4.1数组
#include <bits/stdc++.h>
using namespace std;
// const表示常量,后续不可被修改
const int N = 1e5 + 9;
int a[N]; // 开一个大小为N的全局数组,下标为[0, N - 1],自动初始化为0
int main() {
return 0;
}
4.2 typedef
#include <bits/stdc++.h>
using namespace std;
typedef long long ll; // 法一:将long long类型定义为ll(方便后续使用)
using ll = long long; // 法二:将long long类型定义为ll(方便后续使用)
//const表示常量,后序不可被修改
const int N = 1e5 + 9;
//开一个大小为N的全局数组(类型为long long), 下标为[0,N-1],自动初始化为0
ll a[N];
int main() {
return 0;
}
4.3 字符串
#include <bits/stdc++.h> // 使用万能头文件
using namespace std;
int main() { // main函数是C++中内置的启动函数,也就是程序入口
char s[] = "Hello"; // 长度为5的数组,下标区间为[0, 4]
for(int i = 0; i <= 4; ++ i) { // 数组下标从0开始
cout << s[i]; // 字符串s中下标为i的元素
}
cout << '\n'; // 换行
cout << s << '\n';// 输出s(遇到\0就停下),并换行
return 0;
}
输出结果
Hello
Hello
字符串的组成:
char s[] = "Hello"; // \0 本身不会被计算在字符串长度中
4.4 交换变量
#include <bits/stdc++.h>
using namespace std;
int main() {
int a = 5, b = 3;// 初始化变量a, b
int tmp = b; // 临时变量tmp
b = a; // 将a赋值给b
a = tmp; // 将tmp赋值给a
cout << a << ' ' << b << "\n"; // 输出a, b
return 0;
}
4.5 输出偶数
#include <bits/stdc++.h>
using namespace std;
int main() {
// 输出1 ~ n中所有的偶数
int n = 10;
for(int i = 1; i <= n; ++ i) {
//如果后面不加大括号, 则只执行一条语句
// i % 2 == 0表示 i 除以 2 的余数为0
if(i % 2 == 0) cout << i << '\n';
}
return 0;
}
int main() {
// 输出1 ~ n中所有的偶数
int n = 10;
for(int i = 1; i <= n; ++ i) {
//如果后面不加大括号, 则只执行一条语句
// i % 2 == 0表示 i 除以 2 的余数为0
if(i % 2 == 0) cout << i << '\n';
}
return 0;
}