C++考试复习整理

本文分享了作者考试后的感想,并总结了一系列重要的编程知识点,包括函数重载、指针初始化、STL容器使用等,强调了良好的学习习惯对于应对考试的重要性。

考后感悟:临近考试都在认真紧张的复习,复习时最大的感慨就是,以后一定要好好写CSDN博客,把例题好好整理,不会的问题及时弄会,同时,在整理问题时,把自己出现的问题以及不会的知识点放在首位,这样很方便最后复习的时候的统一看。所有的夜都不是白熬的,未来路还很长,一步一个脚印的坚定走下去吧!!!

整理的注意点:

函数重载的条件:
带参数的函数
关于iompain中函数的应用
注意fixed 和 setprecision()不能四舍五入!!
加fixed是限制小数点后的位数,每一个都按照要求的位数输出,不加的话是最多这么多
各种进制的转换
    while(1)
    {
    string str;
    getline(cin , str);
    int sum = 0;
    for(int i = 0; i < str.size(); i++)
    {
        sum = sum * 36;
        if(str[i] >= 'a' && str[i] <= 'z') sum = sum + str[i] - 'a' + 10;
        else sum = sum + str[i] - '0';
    }
    cout << sum << endl;
    }

max和min函数只能求两个数中的最大或者最小函数不能自动求三个及以上的最大或最小;
一定要注意形参传引用与传值的区别;一定不要忘记返回值引用和值的区别,一定不能把函数里面的临时变量当作引用给传出来。
注意静态成员变量是整个类都用那么一个,如果要处理像第二次作业第四题的那种问题就必须,自己来一个自己的东西,用来储存自己的编号。
const的问题还需要好好复习一下啊,加在前面和后面可是不一样的啊
注意组合关系,是先析构大的再析构小的。
注意区分第2次实验的最后两道题的delete一个可以用,一个不可以用。
关系乱时就对着mainh函数看输出的规律
注意char*原来和string是不能看成一样的不过 char* s = "wang" 这是可以得!!!
一定要把指针一开始初始化成NULL 为什么需要这样那????
注意静态成员变量的应用, static 数据的+和-什么时候用
注意调用的是哪一个构造函数,还有要注意弄对象数组时是不是要一一对应再建一个新的,还是用原来的地址就可以。
注意虚继承和虚函数这两者有区别,虚继承是继承里面的,虚函数是多态里面的
一旦用了const后面就必须全部都要加上const
注意继承子类中有一个爸爸,可以直接用!!!!
注意一旦子类运用到指针了就一定要考虑多态,只有父类中的析构函数是虚析构函数才能顺利的调用到子类的析构函数
注意constj加在函数返回值前面就只能保证函数返回值不被修改, const 加在后面就是常成员函数,只有在类中才有这种写法
注意什么时候用虚函数,虚继承!!!!!那个正方形,长方形, 立方体到底题就不用
很奇怪const char* 不能传给char*但是可以传给 string
注意求最大公约数的那一种超级简便的递归算法
/* int gcd(int a, int b)
{
    if(b == 0) return a;
    else return gcd(b, a%b);
} */

STL简单用法整理:

#include<iostream>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<set>
#include<deque>
#include<multiset>
#include<algorithm>
using namespace std;

int main1()
{
    vector<int> num;
    vector<int>:: iterator iter1;
    num.clear();
    if(!num.empty())
    num.erase(iter);
    num.erase(num.begin(), num.begin() + 10);
    num.insert(num.begin()+a-1, num.begin()+b-1, num.begin()+c-1);
    num.pop_back();
    num.push_back(ele);
    num.resize();
    num.size();
}

//无重复元素的集合
int main2()
{
    set<int>num; //可自动排序
    num.insert(n)
    set<int>:: iterator iter1;
    for(iter = num.begin(); iter != num.end(); iter++)
        ;
    num.erase(2);//删除值为2的元素
    num.clear();
    iter = num.find(2);
    if(iter != num.end()) yes;
    else no;
}

int main3()
{
    stack<int> num;
    num.push(ele);
    ele = num.top();
    num.pop();
    if(!empty());
}

int main4()
{
    map<int, string> num; //<键,值》
    map<int, string> :: iterator iter;
    iter -> first;
    iter -> second;
    //两种构造形式
    num.insert(make_pair(int, string));
    num[int] = string;
}

int main5()
{
    list<int> num;
    int ele = num.back() = num.front();
    num.clear();
    if(!num.empty())
    num.erase(pos); //迭代器还能正常使用
    num.insert(pos, ele);
    num.pop_back();
    num.pop_front();
    num.push_back(ele);
    num.push_front(ele);
    num.remove();
}

int main6()
{
    queue<int> num;
    num.push();
    num.pop();
    num.front();
    num.back();
    if(!num.empty())
    num.size();
}

int main7()
{
    deque<int> num;
    deque<int> num(n, ele);
    num.size();
    if(!num.empty())
    num.front(); num.back();
    num.begin(); num.end();
    num.push_back(); num.push_front();
    num.pop_back(); num.pop_front();
    num.resize();
    num.clear();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值