zoukankan      html  css  js  c++  java
  • 基础小知识总结

    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。

  • 相关阅读:
    机试笔记1
    ZOJ 3846 GCD Reduce//水啊水啊水啊水
    最短路练习
    CodeForces 632C The Smallest String Concatenation//用string和sort就好了&&string的基础用法
    HDOJ 5667 Sequence//费马小定理 矩阵快速幂
    HDOJ 5666//快速积,推公式
    HDOJ 5672//模拟
    网络流相关知识点以及题目//POJ1273 POJ 3436 POJ2112 POJ 1149
    南理第八届校赛同步赛-C count_prime//容斥原理
    python之shutil模块使用方法
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/8287227.html
Copyright © 2011-2022 走看看