c++复习
把我当成一棵树吧
这个作者很懒,什么都没留下…
展开
-
使用sstream读取字符串中的数字(c++)
先介绍以前常用的方法(stoi或atoi)在以往的c++编程中当我们输入整行以空格作为分割的数字时由于整行读入的字符串,我们会采用空格切分字符串,在进行处理stoi需要包含头文件#include<string>atoi需要包含头文件#include<sctdlib>stoi(string)参数是一string类型,当字符串不合法时,会报错atoi(char*)参数是char...原创 2018-03-06 20:58:59 · 11789 阅读 · 0 评论 -
约瑟夫问题的数学解(C++)
约瑟夫问题一般的解法即用循环模拟报数,但是此这样的方法时间复杂度为O(mn),m为报的数,n为人数,在规模较大时旺旺效率并不好,我们可以用数学方法来讲问题进行简化,用O(n)的复杂度解决问题初始的约瑟夫问题设为F(n),我们假设从第0人开始报数,第一个出去的人即第m-1个人,淘汰一人之后我们可以看作是一个n-1人的约瑟夫问题,但是其初始报数位置并不是从头开始,而是从第m%n处开始,我们可以将序号平...原创 2018-03-01 16:14:06 · 370 阅读 · 0 评论 -
algorithm笔记
c++提供了算法库,我们只需要#include<algorithm>即可使用现成的函数进行计算1.find()函数 返回第一个值等价于给定值的元素。template <class InputIterator, class T>InputIterator find (InputIterator first,InputIterator last,const T& va...原创 2018-03-06 23:34:24 · 257 阅读 · 0 评论 -
map,set,vector,string笔记整理(C++)
最近在复习三月份的ccf,搜寻到了一些比较好的博客和笔记,在此放置一下传送门vectorC++ vector 容器浅析setC++ STL set容器常用用法mapC++中的STL中map用法详解stringC++ string的用法和例子在此感谢做出这些笔记的大佬们...转载 2018-03-08 23:47:26 · 243 阅读 · 0 评论 -
大整数类c++实现
在日常使用c++的过程中,经常会遇到数字太大越界的情况,对于这样的大整数运算,我们可以用模拟比算的方法来实现,但是这样每次运算都要实现这样的算法会带来一定的不方便,我们希望能像int这样的内置类型一样使用大整数,所以我们实现一个大整数struct感谢刘汝佳老师的算法竞赛入门经典一书struct BigInteger { static const int BASE = 100000000; st...原创 2018-03-09 00:04:30 · 4717 阅读 · 0 评论 -
stack&&queue&&deque&&priority_queue用法详解
栈和是一种容器适配器,专门设计用于在LIFO上下文(后进先出)中操作,其中元素仅从容器的一端插入和提取。而队列则是FIFO,其元素从队列尾部进入,头部出栈的元素从被称作“栈顶”的位置弹出/放入,容器只允许在栈顶一段进行操作,如图所示在c++中使用栈和队列需要#include<stack>或#include<queue>其包含以下成员函数size() ...原创 2018-03-10 19:51:48 · 149 阅读 · 0 评论 -
并查集c++实现
并查集种数据结构用来表示集合信息,用以实现如确定某个集合含有哪些元素、判断某两个元素是否存在同一个集合中、求集合中元素的数量等问题。其内部用一颗树来实现,其中每个结点记录其父节点编号,根节点的父节点编号为-1,【例】12343-122判断两个元素是否处于同一棵树时可以判断其根节点是否相同,若相同则处于同一集合对于集合A,B的合并,我们使树B的根节点指向A的根节点作为A的孩子之一。同时为了节省查找时...原创 2018-03-10 23:05:18 · 162 阅读 · 0 评论 -
c++的trim,split实现
str.erase(std::remove(str.begin(), str.end(), 'a'), str.end());删除字符串中所有等于a的字符串trim实现string& trim(string &s) { if (s.empty()) //如果是空字符串直接返回 { return s; } s....原创 2018-03-22 09:39:21 · 269 阅读 · 0 评论