目录
bool
C++关键字用于描述 布尔类型
bool temp = true;
temp = false
输出时以 1:true 0:false
string
C++ 字符串类型
头文件 #include <string>
string str;
str = "qwer";
cout << str << endl;
str[1] = 'W';
cout << str << endl;
字符串比较 : 通过 == 、!= 、> 、<判断
string strnew = "qWer";
if (strnew == str)
{
cout << "strnew == str" << endl;
}
else
{
cout << "strnew != str" << endl;
}
字符串拼接 : 通过 + 、+= 进行拼接
string strneww = strnew + str + p + strarr;
cout << strneww << endl; //qWerqWerqwer1234
字符串截取 : substr(开始下标,截取长度)
开始下标超限则报错 截取长度超限仅截取有效长度
cout << strneww.substr(4, 10) << endl;; //qWerqwer12
cout << strneww.substr(4, 100) << endl; //qWerqwer1234
字符串长度
cout << strneww.size() << " " << strneww.length() << endl; //16 16
c_str() : string 转换为 const char*
cout << strcmp(strneww.c_str(), strarr) << endl;
增强的范围for
遍历int数组
int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };
for (int v : arr)
{
cout << v << " ";
}
cout << endl;
遍历string
string str = "1234567890";
for (char v : str)
{
cout << v<<" ";
}
cout << endl;
不可遍历new的 数组 (未知数组大小)
函数参数默认值
传递实参则默认值失效
未传递实参则使用默认值
单个参数
void fun1(int a=10)
{
cout << a << endl;
}
fun1(); //fun1 10
fun1(20); //fun1 20
多个参数
多参数指定默认值规则:从右向左依次指定,中间不可间断
void fun2(int a, int b=20, int c=30)
{
cout << a << " " << b << " " << c << " " << endl;
}
fun2(100); //100 20 30
fun2(100, 200); //100 200 30
fun2(100, 200, 300); //100 200 300
只在声明处指定默认值
void fun3(int a = 10);
void fun3(int a)
{
cout << a << endl;
}
fun3(); //10
只在定义处指定默认值
void fun4(int a);
void fun4(int a = 20)
{
cout << a << endl;
}
fun4(); //error C2660: “fun4”: 函数不接受 0 个参数
在同一作用域下:声明和定义处皆指定默认值
void fun5(int a = 30);
void fun5(int a = 30)
{
cout << a << endl;
}
fun5(); //error C2572: “fun5”: 重定义默认参数 : 参数 1
多次声明指定默认值,以局部为准
void fun6(int a = 40);
void fun6(int a)
{
cout << a << endl;
}
fun6(); //40
void fun6(int a = 50);
fun6(); //50
函数重载
在同一作用域下,函数名相同,参数列表不同(参数类型,数量),返回类型是否相同不做要求
描述多个函数之间的关系
int add(int a, int b)
{
return a + b;
}
double add(double a, double b)
{
return a + b;
}
int add(int a, int b, int c)
{
return a + b + c;
}
int main()
{
cout << add(10, 20) << endl; //30
cout << add(10.5, 20.5) << endl; //31
cout << add(10, 20, 30) << endl; //60
return 0;
}
函数重载
void fun1() { cout << "fun1()" << endl; }
void fun1(int a = 0) { cout << "fun1(int a)" << endl; }
fun1(10);
void fun1();
fun1();
{
void fun1(int a = 0);
fun1();
}
非函数重载
非函数重载:error C2084: 函数“void fun2(int)”已有主体
void fun2(int a) { cout << "fun2(int a)" << endl; }
void fun2(const int a) { cout << "fun2(const int a)" << endl; }
函数重载
void fun2(int* a) { cout << "fun2(int* a)" << endl; }
void fun2(const int* a) { cout << "fun2(const int* a" << endl; }
非函数重载
非函数重载,重定义:error C2084: 函数“void fun3(int [])”已有主体
void fun3(int arr[]) { cout << "fun3(int arr[]" << endl; }
void fun3(int* arr) { cout << "fun3(int arr[]" << endl; }