• 基础小知识总结


    1、当我们提供一个类内初始值时,必须以符号=或者花括号表示。

    class a{
       vector<int> v[10];//这是错误的,不能指定大小
       string s("");//错误; 
    };

    必须使用=或者{}

    class a{
       vector<int> v1 = vector<int> (10);
       vector<int>v2{1,2,3,4};
       string s{""};
    };

     n个节点,n-1条边的无向图是棵树。

    2.将一个字符串转换为可以修改的char数组,或者一个char*指向一个string。必须使用strcpy才可以实现。

    string s{"12"};
    const char *p1 = s.c_str();
    char* p2;
    strcpy(p2,s.c_str());

     3.迭代器失效问题,vector插入删除元素后,原来的迭代器就没用了,再调用就报错,而list的迭代器在插入元素之后,还是指向原来的元素。在STL里,我们不能以指针来看待迭代器,指针是与内存绑定的,而迭代器是与容器里的元素绑定的,删除了之后,该迭代器就失效了,在对其重新赋值之前,不能再访问此迭代器。

    vector<int> a{1,2,3};

    auto iter = a.begin();

    a.insert(iter,100);

    这个时候100就被插入到1的位置,iter指向100,1移动到100的后面。

    erase()返回删除元素之后的那个元素。

    vector,string会失效。

    4、常用的algorithm

    vector

    5、final表示这个类不能被继承,override写在参数之后,花括号之前,对应的必须是虚函数,在继承中必须被重写,不然报错。

    6.继承只能使用public和protected的变量,不能使用private的变量。

    7.1k=2^10 1M=2^20 1G=2^30 1T=2^40

    8,对于栈和queue要使用while,不要使用for

    for(int i = 0;i < queue.size();++i){

      res += q.top();

          q.pop();

    }

    这里queue的大小在不断变化,这里肯定错误,应该写成while(q.size() > 0);

    对于多重循环,自己经常ijk,最后一层循环容易将k写成i。

  • 相关阅读:
    动态加载js文件以支持跨域脚本
    获取页面宽高的一些代码
    根据dom对象或其id获取对象位置的代码
    Exchange2007用户用户全部访问权限授权命令及验证脚本
    frame页面地址转向跨域解决方法
    过滤掉多余的重复记录的SQL语句
    读写cookie的方法
    识别移动设备脚本
    winrar打包部署程序
    自己动手搭建MinGW
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/8287227.html
Copyright © 2020-2023  润新知