
c++学习
文章平均质量分 67
FastestSnail
This is the snail who can run and even can fly.
展开
-
使用C++实现双向链表List
参考教程《数据结构与算法分析 C++描述 》第三版和第四版这次写的过程中,发现的两个新的 问题:第一:自己定义的数据结构UDT如果需要使用C++11中的范围for语句,需要定义begin和end函数。如果遍历的是常量对象,则要有相应的常量对象可用的begin和end函数。声明形式如下:iterator begin();const_iterator begin() const;原创 2016-11-29 22:29:09 · 1362 阅读 · 0 评论 -
使用copy函数输出vector中的内容
学习了一种快速输出vector到输出流的方法(当然这个输出流不仅仅是标准输出cout,还可以是其他的文件流)。首先要包含两个头文件,(这个头文件中有copy函数)以及(这个里面有ostream_iterator类模板)然后假设待输出的vector为 vector vec;输出语句为:copy(v.cbegin(), v.cend(), ostream_iterator(cout,原创 2017-01-08 20:28:47 · 4586 阅读 · 0 评论 -
如何解决VS警告warning C4244: “参数”: 从“time_t”转换到“unsigned int”,可能丢失数据
今天在使用随机数的时候,使用时间做种子,结果提示warning C4244: “参数”: 从“time_t”转换到“unsigned int”,可能丢失数据。原来VS中的time_t是64位的,然而default_random_engine需要32位的“unsigned int”,因此需要强制转换,比如default_random_engine e(static_cast(time(0)));。原创 2016-12-26 16:30:24 · 20337 阅读 · 0 评论 -
C++实现二叉搜索树(二叉排序树)模板类
参考了Weiss的数据结构与算法分析C++描述第三版完成二叉搜索树原创 2016-12-09 21:51:48 · 2735 阅读 · 0 评论 -
关于C++类成员访问级别(public,protected,private)与继承的形式(public, private)
最近在看effective C++,看到第六部分——继承与面向对象设计,对类成员访问级别(public,protected,private)与继承的形式(public, private)的有时候会有点迷糊,这里理清一下思路。我觉得首先要弄清楚,类的定义和类的使用。简单来说,类的定义就是设计类里面应该有什么成员函数,什么数据,以及成员函数的实现。而类的使用是通过定义好的类来产生对象,原创 2016-12-14 11:17:51 · 2199 阅读 · 0 评论 -
使用C++实现Vector
使用C++实现了简化的Vector类原创 2016-11-26 20:03:53 · 818 阅读 · 0 评论 -
编写了一个计算器小程序,作为栈的练习
一个计算器小程序的实现。用户可以及时输入,然后将用户输入的表达式(中缀表达式)转换成后缀表达式,然后计算。原创 2016-12-07 19:53:07 · 2871 阅读 · 0 评论 -
使用C++实现AVL树模板
今天练习编写了一下AVL树。参考了Weiss的数据结构与算法C++描述版。上一个实现的一个一般的二叉搜索树,在使用的过程中可能会慢慢变得不平衡,这样很可能会降低查找、插入等等的效率,因此我们需要使用算法来实现树的平衡。AVL树是一种比较经典的平衡二叉搜索树,它规定每个节点的左子树和右子树的高度差最多为1,默认空树的高度为-1,这样能保证树的深度为O(logN),而且除了遍历,赋值,基本上所有树的操作都可以以时间O(logN)执行(当然插入和删除后因为要重新平衡树,可能时间会长于O(logN))。(Ps,上面原创 2016-12-13 22:32:51 · 6055 阅读 · 1 评论 -
关于在g++编译C++过程中调用移动构造函数
最近在学习C++,写了段程序,g++下一直不能调用移动构造函数,换到VS2013下就没有问题,原来是需要使用g++编译的时候使用 -fno-elide-constructors 选项,而且开启c++11标准,完整命令如下:g++ -o demo -std=c++11 -fno-elide-constructors demo.cppdemo.cpp如下:#include#inc原创 2016-11-15 17:13:45 · 1383 阅读 · 0 评论 -
C++实现单例模式(包括采用C++11中的智能指针)
对于设计模式来说,以前只是看过基础的理论,很多都没有实现和使用过。这段时间看到了别人C++代码中使用了单例模式,发现了很多新的东西,特此总结记录一下。说话比较啰嗦,希望由浅入深,帮助大家理解! 单例模式,顾名思义,即一个类只有一个实例对象。C++一般的方法是将构造函数、拷贝构造函数以及赋值操作符函数声明为private级别,从而阻止用户实例化一个类。那么,如何才能获得该类的对象呢?这时,原创 2018-02-05 23:24:58 · 26759 阅读 · 26 评论