C++
IT界的一大菜鸟
这个作者很懒,什么都没留下…
展开
-
C++11新特性汇总(更新中)
来源于对C++Primer内容的理解或者可以说成个人笔记文章目录1.long long2.列表初始化3.nullptr常量4.constexptr常量5.类型别名6.auto类型指示器7.decltype类型指示符8.类内初始值9.范围for语句10.vector1.初始化方法:2.添加元素1.long long长整型34位、带符号2.列表初始化int main(){ int a{2}; int b{1}, c{2}; int d = {0}; //上述写法等同于 int e.原创 2020-08-14 17:12:46 · 11289 阅读 · 3 评论 -
智能指针——unique_ptr、weak_ptr
unique_ptr也有于shared_ptr相同的用法:p、*p、p->get()、swap(),详情参见shared_ptr1.特性某一时刻,只能有一个unique_ptr指向一个给定的对象当unique_ptr被销毁,,它所指向的对象也被销毁不能用make_shared,而是要将其绑定在一个new返回的指针上。unique_ptr<int> p2(new int(42)); 不支持普通的拷贝和赋值错误示范:int main(){ unique_ptr&原创 2020-08-13 19:52:10 · 16329 阅读 · 0 评论 -
智能指针——shared_ptr
文章目录1.p2.make_shared(param)、*p3.swap(p,q)、p.swap(q)4.p.use_count5.shared_ptrp(q)6.自动销毁所管理的对象文章来源于C++Primer的读后笔记众所周知,智能指针是模版,因此应在<>里面给出类型,则创建shared语句为:shared_ptr<string> p1;默认初始化为空使用方式和普通指针一样(解引用、引用)支持功能代码实例:1.pint main(){ shared_原创 2020-08-13 18:20:31 · 16404 阅读 · 0 评论 -
KMP之美
什么是KMP?一开始到KMP这个词,感觉不想学他了,这是什么鬼?可能很多人像我当初一样觉得KMP很难。但是我经过仔细研究,发现了一个不可告人的秘密。K:???K是什么?kuai(快)?嗯 是这样的。M:???难道取自MMP(你懂的)?暂且理解为特么的的么的意思吧。P:???是pi?那是一声嘛?经过反复研究,是三声(匹配的匹),阿哈哈。理解了这三个字母就大致能推断出KMP是干什...原创 2020-03-18 21:14:39 · 6627 阅读 · 0 评论 -
排序算法汇总
更新中…冒泡排序:最佳情况:T(n) = O(n)最差情况:T(n) = O(n2)平均情况:T(n) = O(n2)代码实现:#include<iostream>using namespace std;void maopao(int a[10]){ int i,j; for(i= 0;i<10;i++) { for(j = 0;j<10-...原创 2020-03-15 16:18:32 · 6471 阅读 · 0 评论 -
算法篇 —— 末尾0的个数
题目描述输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2输入描述:输入为一行,n(1 ≤ n ≤ 1000)输出描述:输出一个整数,即题目所求解题思路1.第一种方法是直接将 n! 求出来,然后查看末尾有几个0 ,此方法思路简单,但是不能称之为一个最优的解决方案!需要用到大数相乘,在此不做过多讲述2.第二种方法...原创 2019-05-09 18:06:38 · 3990 阅读 · 0 评论 -
绘制直线算法(计算机图形学)
1.数值微分法(DDA):原理:直线斜率:k=(y1-y0)/(x1-x0);则直线方程:y = kx + B;y(i+1) = kx(i+1)+B = kx1+B+k△x = yi+k△x;注意:此算法只适用于k<=1。当k>1时必须把xy换位,即y每增加1,x增加1/k2.中点画线法:原理:有直线3.Bresenham算法:...原创 2019-09-04 12:53:03 · 2401 阅读 · 0 评论