
C++
文章平均质量分 75
SL_World
中国科学院大学计算机应用技术专业在读研究生
展开
-
C++11中map/multimap/unordered_map以及对应set使用回顾
前言:今天Leetcode遇到一道题很有意思,方法还是老方法,但是得换个新数据结构才能以很简单的算法AC,这就涉及到多个基础数据结构的组合,本节主要回顾一下哈希表和哈希集合在力扣中的基础用法文章目录使用场景及概述1 映射容器1.1 `map`1.2 `multimap`1.3 `unordered_map`参考文献使用场景及概述当你想通过非遍历或非穷举的方式,快速判断一个元素是否出现集合里,Hash Table是非常合适的数据结构这里先总述映射和集合的性质映射底层实现是否有序映射.原创 2021-03-14 21:52:32 · 878 阅读 · 2 评论 -
C++11哈希集合set与向量vector的互转
文章目录1 vector转set2 set转vector参考文献1 vector转set通过unordered_set的构造方法即可获得unordered_set<int> set(vec.begin(), vec.end());使用vector的rbegin()和rend()反向迭代器可以得到升序结果unordered_set<int> set(vec.rbegin(), vec.rend());完整代码#include <iostream>#inc原创 2021-03-11 14:43:55 · 12054 阅读 · 0 评论 -
C++ 11字符数组/字符串/数字转换/字符串拼接
一、数字转字符串头文件#include<string>#include<typeinfo>1.1 int型数字转字符串int num = 123;string num2str = to_string(num);cout << typeid(to_string(num) == typeid(string) << endl; // true1.2 float/double型数字转字符串(不补0)头文件#include<sstream原创 2021-03-04 16:18:00 · 4302 阅读 · 2 评论 -
【C++】别再用memset初始化int数组了,用fill或者fill_n
用memset把int数组初始化为0是没问题的,但是要初始化成其他的数值,比如说-1或者别的什么数字,那就会报错,原因在于memset是以字节为单位进行填充的详细的见百度百科https://baike.baidu.com/item/memset其实想想也好理解,memset本来就是 < cstring >里面的函数,用处也主要是给char类型的字符串赋初值,用在int类型数组本来也...转载 2019-11-27 16:36:47 · 561 阅读 · 1 评论 -
C++向量中的结构体和map按value降序排序
一、向量中的结构体排序需要先将结构体初始化后压入向量中,然后通过sort进行升降序排序。class Solution { typedef struct Monkey{ int index; bool isRight; }; static bool cmp(Monkey m1, Monkey m2){ r...原创 2019-11-26 21:48:59 · 1582 阅读 · 0 评论 -
C++ pair 和make_pair的用法
pair 的用法std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。 C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象。 class pair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元素。 pair被定义为struct,因此可直接存取pair中的...转载 2019-10-16 12:21:32 · 15055 阅读 · 0 评论 -
C++11 AUTO 类型实践
auto在C++11中引入,为大家带来方便。具体使用及注意事项参考:用法:一是在变量声明时根据初始化表达式自动推断该变量的类型。适用于类型冗长复杂,模板类型等二是在声明函数时作为函数返回值的占位符注意事项:使用auto关键字的变量必须有初始值。类似引用函数参数和模板参数不能被声明为auto。使用auto关键字声明变量的类型,不能自动推导出顶层的CV-qualifiers和引用类型...转载 2019-10-16 12:18:12 · 226 阅读 · 0 评论 -
C++ vector用法小记
最近在leetcode上面做题,STL的vector用的甚多,这里稍微的总结下vector的一些常用方法,包括一维的和二维的,暂时能想到的就给记下了。一维vector创建一维vector:vector<int> nums; //不指定长度vector<int> nums(n); // 指定长度为n 添加元素nums.push_back...转载 2019-10-16 12:11:10 · 289 阅读 · 0 评论