![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
编程语言
java c/c++ python
lewin.li
这个作者很懒,什么都没留下…
展开
-
c++实现泛型LRU
lru原创 2022-10-07 20:24:19 · 313 阅读 · 1 评论 -
比较完善的多线程安全 shared_ptr实现
shred_ptr原创 2022-10-05 15:54:34 · 419 阅读 · 0 评论 -
python|python 生成器
在python中使用了yield 的函数称为生成器。跟普通函数不同,生成器是一个返回迭代器的函数,只能用于迭代操作在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。除了创建和保存程序状态的自动方法,当生成器终结时,还会自动抛出StopIteration异常。#生成器import sysdef Back(data): for i in range(len(data)-1,原创 2020-06-04 22:14:01 · 227 阅读 · 0 评论 -
python|python迭代器
迭代器的用法在python中普遍而且统一。for语句在容器对象中调用iter()。该函数返yige回一个定义了next()方法的迭代器对象,它在容器中逐一访问元素。没有后续元素时,next()抛出一个StopIteration异常通知for语句循环结束。字符串、元组、列表都可用来创建迭代器,迭代器只往前不后退。我们可以通过这个机制,来给我们自己的类添加迭代器行为:#添加迭代器行为,从后向前迭代class BackWard: def __init__(self, data):原创 2020-06-04 21:37:24 · 94 阅读 · 0 评论 -
scanf无法处理带空格的字符串
#include<stdio.h>int main(void){ char ch[500]; scanf("%s", ch); int j = 0; printf("%s", ch);}运行结果:hellow is ahellowWhyscanf在遇到空格时会停止扫描,所以只能读入前半部分,后面的How to solve it用gets()替换scanf处理字符串...原创 2020-06-02 08:17:16 · 461 阅读 · 0 评论 -
考研复试算法分析总结(持续更新)
自己在准备研究生复试时,总结的一些算法思路以及算法的例子,希望对大家有帮助,如果有出错的地方欢迎提issure.github地址:GitHub主流算法1.搜索(回溯) 2.DP(动态规划)3.贪心 4.图论(Dijkstra、最小生成树、网络流) 5.数论 6.计算几何 7.组合数学 8.模拟 9.数据结构 10.博弈论手把手撕LeetCode题目,扒各种算法套路的裤子https://github.com/labuladong/fucking-algorithm算法分析算法分析是对算法所用的原创 2020-05-27 12:31:58 · 2798 阅读 · 0 评论 -
C++11的新特性
1.统一的初始化方法int arr[3]{1, 2, 3};vector<int> iv{1 ,2, 3};map<int, string> mp{{1, "a"}, {3, "b"}};int* p = new int[6]{1, 2, 3};2.成员变量有初始值class Test{public: int m_ = 100;};3.auto关键...原创 2020-05-05 18:31:08 · 173 阅读 · 0 评论 -
系列文章(三):从内存的角度看-------静态成员变量/函数&非静态成员变量/函数&this指针
静态成员和非静态成员有什么区别?区别一:静态成员有static修饰,而非静态成员没有区别二:存储位置不同。静态成员变量存储在全局数据区,由所有的对象共享,不能通过sizeof()求大小,要在class外进行声明或初始化;非静态成员存在于各自对象中,与struct有相同的内存布局和字节对齐方式区别三:this指针。静态成员函数中没有this指针,而非静态成员函数有this指针。还有一点...原创 2020-05-04 16:40:27 · 155 阅读 · 0 评论 -
系列文章(二):从内存的角度看-----拷贝构造函数(深浅拷贝)
5 class Test{ 6 public: 7 Test(int n, const char* ch){ 8 m_ = n; 9 ch_ = new char[strlen(ch)+1]; 10 strcpy(ch_, ch); 11 } 12 ~Test(){ 13 cout ...原创 2020-05-03 15:26:20 · 186 阅读 · 0 评论 -
系列文章(一):从内存的角度看-----构造函数、析构函数
class Test{public: Test(int num, const char* ch){ num_ = num; ch_ = new char[strlen(ch) + 1]; strcpy(ch_, ch); } ~Test(){ if(ch_ != NULL) delete[] c...原创 2020-05-02 16:15:58 · 170 阅读 · 0 评论 -
从内存的角度理解C++系列文章
从内存的角度理解C++c/c++性能出众的一个原因就是其可以对内存进行精细的控制,从内存使用的角度出发更加容易把握和理解它的各种特性。系列文章(一):构造函数、拷贝构造、析构函数系列文章(二):类系列文章(三):继承系列文章(四):多态写的不好的地方,欢迎指正。...原创 2020-04-23 17:29:26 · 130 阅读 · 0 评论 -
c++的构造和析构总结
为啥会有构造函数和析构函数,个人认为还是图省事。如果没有构造函数,每一次初始化都需要手动调用初始化方法,一个两个还好说,那要是1000大小的数组呢??所以我们希望能让编译器帮我们自动的进行对象属性初始化。构造函数定义:c++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数。1 在对象创建时自动调用,完成初始化相关工作。2 无返回值,与类名同,默认无参,可以重载...原创 2020-04-06 16:12:52 · 122 阅读 · 0 评论 -
c++ 中const的各种用法总结
占个坑先原创 2020-03-25 17:45:30 · 336 阅读 · 0 评论 -
c/c++的二级指针与指针引用比对
一.一级指针与二级指针最常用的指针就是一级和二级指针了,一级指针相信大家都很熟悉就不过多介绍了,二级指针相信一些鞋童可能还不熟悉,那我们就说一下。二级指针用官方的话说就是指向指针的指针,先上程序再解释。指针推荐大家这样写int* a int** a好懂#include<iostream>using namespace std;int main(void){ int a...原创 2020-03-25 15:26:25 · 192 阅读 · 0 评论 -
c/c++中的段错误
背景最近一段时间在linux下用C做一些学习和开发,但是由于经验不足,问题多多。而段错误就是让我非常头痛的一个问题。不过,目前写一个一千行左右的代码,也很少出现段错误,或者是即使出现了,也很容易找出来,并且处理掉。那什么是段错误?段错误为什么是个麻烦事?以及怎么发现程序中的段错误以及如何避免发生段错误呢?一方面为了给自己的学习做个总结,另一方面由于至今没有找到一个比较全面介绍这个虽然是“...转载 2020-03-14 14:23:33 · 77 阅读 · 0 评论