C++
wangyhwyh753
生命在于不断的学习前进。忍得住虚无的诱惑和平凡的寂寞,受得了生活的苦难和精神的冷落。不为别人,只为得到自己应该得到的一生。
展开
-
利用栈实现队列
栈是先进后出,而队列是先进先出。利用两个栈能够将顺序颠倒。前提是第一个栈不为空时,应改完全导入到第二个栈。如果新的数据到来,第一个栈不为空应改等待一个栈完全压入第二个栈才能压入第一个栈。第二个栈在不为空时,第一个栈的数据不能压入到第二个栈。...原创 2020-04-17 18:59:05 · 151 阅读 · 0 评论 -
内存分配的两种方法
我们都知道内存分配有两种方法: new和malloc。他们有哪些相同点和不同点呢?一,new是系统API函数,而malloc是库函数也即意味着在程序中调用malloc函数需要加载malloc.h头文件才能使用。二,new创建的对象除分配内存外,还会调用类型的构造函数,同理delete会调用析构函数。如果用new赋值的指针,用free释放将有可能导致析构函数没有调用,一些变量内部生成的变量指针不能释...原创 2018-03-20 20:07:57 · 537 阅读 · 0 评论 -
string类的大小
C++中有一个和c一样的类string这个类非常奇怪,首先说明我疑惑的地方string sz = "hello\0world";string ch;printf("%d,%d,%d,%d,%d,%d,%d",sz.size(),sz.capacity(),sizeof(sz),sizeof(string),ch.size(),ch.capacity(),sizeof(ch));猜猜输出是什么?...原创 2018-03-27 20:04:12 · 6981 阅读 · 0 评论 -
排序算法
排序算法有很多种,这里仅仅研究常见的两种:冒泡法和归并排序法。算法一般要求有复杂度,包括时间复杂度和空间复杂度。对于链表经典的排序算法是冒泡法,算法复杂度为O(n^2)最好的运行次数是n(n-1)/2,最差的运行次数是3n(n-1)/2;空间复杂度是O(1),因为只需要一个空间变量已经足够。struct ListNode{ int val; ListNode* pNext; ListNod...原创 2018-03-27 20:08:04 · 404 阅读 · 0 评论 -
指针
在c语言系列中,指针使得使用这种语言编写程序灵活。然而,灵活的另一面常常会带来多变,多变则容易出错。这篇将就指针进行深入理解和学习。指针的定义是指向某一数据类型或者类的变量。也可以理解为地址。但是地址在一般意义上是一种常量,严格意义上这样理解指针是不对的。指针根据指向的类型来区分。比如说int型指针p,就是int *p。随着指针指向的类型复杂而变得复杂。比如说,指向类A派生类B的指针p,那么p...原创 2018-12-27 21:46:16 · 145 阅读 · 0 评论 -
C++11特性
C++11在很早就已经发布了,但是一直没注意,现在总结一下理解的特性:auto关键字的引入,编辑器可以根据上下文自动判定类型,但是不能用于声明和内联函数。 NULLPtr的引入,由于NULL在某些问题上的局限性,引用NULLPtr将更加准确。 for循环中引入:,来表示集合,相当于其他语言的区间迭代(Python中foreach x in xx) 引入了std::Thread,使得线程的...原创 2019-03-28 15:10:45 · 111 阅读 · 0 评论