中级班复习知识点

root 站长 2019-06-09 11:05:24 2019-06-09 11:38:31 20

中级班

string 字符串(string s)

(1) 包含头文件 cstring;
(2) 字符串读入 cin >> s/getline(cin,s);
(3) 字符串长度 size函数 int len = s.size()
(4) 字符串遍历 for (int i = 0; i < len; i ++ )
(5) 字符大小写 'a'-32='A' 'C'+32='c'

结构体

1、写法

struct stu{
    string name;
    int math, chinese, en;	
}; 

2、输入输出 通过 . 操作符号访问成员

(1) 输入

stu a[36];  
for (int i = 1; i <= n; i ++ )
    cin >> a[i].name >> a[i].math...;

(2) 输出 for + cout

3、比较函数 cmp+sort(头文件 algorithm)

//按照学生数学从高到低排序 
bool cmp(stu x, stu y) 
{
    return x.math > y.math; 
}

4、文件操作

freopen("输入文件名称", "r", stdin);
freopen("输出文件名称", "w", stdout); 

函数

1、定义

函数返回类型 函数名(函数参数列表) //函数头部  
{
    函数体
    return 返回值;// 返回类型为void时,不需要 
} 

2、调用

在主函数中, 函数名(实参);

3、值传递和地址传递

int swap(int a, int b){} // 值传递
int swap(int &a, int &b){} // 地址传递

4、递归

递归出口边界一般是附近)递归表达式(前一项和后一项的关系,有些特殊前项都要考虑)

5、回溯

void f(int step, int num)  //准备去执行的步数(没有执行), num 表示约束条件 
{
    if (step == n + 1) //如果当前步数已经达到 n + 1,前 n 步已经执行完毕
    {
        if (num == 90)
        {
            //ans++;output();
        } 
        return;
    } 
    else
    {
        for (int i = 1; i <= n; i ++ )  //枚举所有的可能 
        {
            //a[step] = i;
            f(step + 1, num + i);
        }
    }
} 

ps:只能解决小规模问题 n <= 20

{{ vote && vote.total.up }}

共 2 条回复

lixinyan 爱因斯坦

xvxianzhi

好调