zoukankan      html  css  js  c++  java
  • OJ 注意点及知识点总结

    1.头文件

    #include<vector>    //vector容器

    #include<map>       //map容器

    #include<algorithm>       //sort() 函数需要加

    2.宏定义

    #define OK 0

    #defien ERR 1

    或者定义成其他。

    3.字符串问题

    入参有字符指针,一定要检查是不是NULL

    传入的Output指针,如果没有特别说明要自己分配空间的话,也要检查是否NULL

    不要改变传入的字符串,需要改变的话,可以自己定义一个新的,然后memcpy过来处理

    例如:

    char* newstr = (char*)malloc((strlen(pInputStr)+1) * sizeof (char));        //注意 +1

    memset(newstr, 0, (strlen(pInputStr)+1) * sizeof (char));                       //malloc 后一定要 memset   //最后一个参数可以从上面这句复制过来

    memcpy(newstr, pInputStr, strlen(pInputStr));

    传参为char* ,也可以通过string处理:

    string str_c, str_e;

    str_c = pStrChinese;                                       //可以这样赋值
    str_e = pStrEnglish;

     插一句: string有一个方法,c_str(),可以把string类型转换成 C 语言中的字符串。

    若要把string类型的值赋给 char*(已分配空间),则要memecpy:

    memcpy(pOutputStr, str_e.c_str(), str_e.length);

    4.map

    map容器就像是哈希表,就像是python中的字典,就像是javascript中的对象,都是键值对。

    创建: map<int, int>  transmap;                    //定义了一个变量transmap,是个map容器,键值都是int类型

    创建迭代器: map<int, int>::iterator it;              //it就是迭代器了

    添加:最简单的办法就是 transmap[key] = value;

    查找:transmap.find(value);                           //find函数返回的是索引值,如果没找到就返回最后的索引值的后一个,也就是transmap.end()的值

    遍历:可以通过迭代器:

       for(it = transmap.begin(); it != tansmap.end(); it++){

         cout<<it->second<<" ";                //迭代器的第一值是键,第二个是值,所以 it->second 是找到的值,也可以(*it).second

       }

    删除键值对:.erase(索引值)

      it = transmap.find(value);

      transmap.erase(it);

      注意遍历删除时,要在删除前将索引值+1,如:

      for(it = transmap.begin(); it != transmap.end();){

        cout<<it->fitst<<":"<<it->second<<endl;

        transmap.erase(it++);

      }

    清除map容器: map.clear();

    排序:map中的键值对是按照 键 从小到大排的,map不支持sort函数;

  • 相关阅读:
    Go中的interface学习
    Go中的命名规范
    Go中的结构体
    Go中的文件读写
    Go包管理工具dep
    SpringBoot中读取配置文件的几种方式
    Go标准库--net/http学习
    centos7通过yum安装docker
    scala之构造器详解
    解决!!-- krb5-libs.x86_64被卸载,yum不能使用,ssh不能连接
  • 原文地址:https://www.cnblogs.com/babywhale/p/4620641.html
Copyright © 2011-2022 走看看