C++
文章平均质量分 62
King_DJF
这个作者很懒,什么都没留下…
展开
-
C++中数组以及多维数组作为函数参数时的一些问题
output1(ia, sizeof(ia)/ sizeof(ia[0]));今天在做《c++ primer》上的习题的时候,遇到了一个小问题。原始函数如下:void output1(int a[]) { for (int i : a) { cout << i << " "; } cout << endl;}数组a为一维整型数组原创 2016-10-13 21:15:10 · 1276 阅读 · 0 评论 -
C++多态性与虚函数理解
《Effective C++》一书中第七条:Declare destructors virtual in polymorphic base classes用于多态的基类中的析构函数应该声明为虚函数。看到这个地方,感觉自己好像对虚函数的理解有点模糊了,就趁这个机会把C++多态和虚函数的知识系统的理一理。所谓C++的多态性,说来话长。OOP,面向对象编程的核心思想就是多态性,字面意思就是“多种原创 2017-03-20 15:27:12 · 1011 阅读 · 0 评论 -
马踏棋盘C++实现与贪婪算法优化
马踏棋盘问题即在一个8*8的棋盘上,原创 2017-02-27 19:48:55 · 2749 阅读 · 0 评论 -
若非群玉山头见,会向瑶台月下逢
一年前,开始在这里记录自己的一些收获与学习经历,后来因为去趋势科技实习中断了这个过程,中断了也有半年之久了。吐槽一下,过了这么久了,CSDN的这个文本编辑器还是这么反人类。这段时间经历了很多,也学习了很多,实习的时候没有精力去总结,九月份刚结束的时候,对自己后面的规划还没有一个清晰的认识,同时还要准备开题的事情,也就没有继续更新博客,现在有精力(闲了下来),有时间了,就想着把这段时间的经历原创 2017-10-06 21:24:35 · 2115 阅读 · 0 评论 -
AVL树的实现(C++)
Implement of AVL_Tree using CppImplement of AVL_Tree using Cpp原创 2017-10-22 11:24:19 · 788 阅读 · 0 评论 -
排序算法整理
排序算法整理排序算法整理写在前面插入排序(insertion sort)选择排序(select sort)希尔排序(shell sort)归并排序(merge sort)快排(quick sort)总结Reference写在前面本来是想做一个多线程排序的练习,对比一下单线程排序和多线程排序的差异,顺便练个手,于是便转而研究起了常用排序算法,闷头学习了...原创 2017-10-14 16:57:16 · 524 阅读 · 0 评论 -
Edit Distance(Dynamic Programming)
Edit DistanceEdit DistanceDescriptionDefinitionAnalyseImplementReferenceDescriptionA problem on leetcode. DefinitionGiven two strings word1word1 and word2word2Do some operations to convert word1原创 2017-10-14 17:07:58 · 443 阅读 · 0 评论 -
音乐检索(听歌识曲)实现过程
序言需要实现的功能算法原理实现准备效果Code序言由于需要做无人机的声音识别,但是现有的做无人机声识别的成果不是很多,机缘巧合下在一篇论文中看到了一篇有关音乐识别的论文,就是这个shazam论文 ,该算法提出的时间比较早,也不是很复杂,而且已经商用了很久:shazam网站 ,当然,这个论文里面的是算法的初级版。所以,就萌生了想要实现它的想法,等复现后,视效果再考虑移植到对无人机声识别的原创 2017-11-13 20:49:15 · 19699 阅读 · 23 评论 -
Linux多线程同步方式总结
线程同步方式的逻辑互斥锁条件变量读写锁线程同步方式的逻辑互斥锁lock\unlock,这样就可以构成一个原子操作/*mu is a global mutex*/while (1) { /*infinite loop*/ mutex_lock(mu); /*aquire mutex and lock it, if cannot, wait原创 2017-11-19 20:37:03 · 405 阅读 · 0 评论 -
听歌识曲C++程序说明
听歌识曲C++程序说明本工程在VS2015下编译运行;运行时,机器上需要已经安装有MySql软件,我使用的是MySql 5.7版本的,MySql C++ connector用的是1.19版本的;直接拿过来编译肯定是编译不过的,详情见下描述工程目录说明3rd_party : 第三方库 boost_1_62_0 : boost库Eigen : 矩阵与FFTmaximili原创 2018-01-17 14:38:35 · 3271 阅读 · 6 评论 -
C++单例模式
单例模式需求只能有一个实例,需要隐藏构造函数线程安全性的考虑,即避免出现两个线程竞争而构造出两个实例的情况(这里需要考虑,用锁+double check可以解决,但是加解锁会增加开销,所以解决思路可以是确保只会执行一次初始化->static const or 局部static )考虑到代码复用,可以实现为模板基类,以供继承static变量会在静态初始化时完成,这个时候只可能是单线...原创 2018-02-25 14:30:36 · 524 阅读 · 0 评论 -
C++实现线程池
C++实现线程池背景功能需求涉及概念类设计代码实现使用总结C++实现线程池背景线程池,或者任务队列是多线程环境下的一种重要的基础组件功能需求实现一个任务队列,用来存放当前的任务当有任务送入时,送入任务队列并提示所有线程,处理库存任务涉及概念主要使用了C++11新增的多线程库中的内容;没接触过的话可能比较难以理解,...原创 2018-04-15 23:07:41 · 380 阅读 · 0 评论 -
非科班小硕的秋招面经和经验总结
文章目录写在前面秋招盘点秋招面经华为:阿里菜鸟:海康远景百度momenta腾讯经验总结书单推荐开源库学习推荐资源分享写在前面本篇文章适用于非科班出身,想从事cpp方向互联网行业的同学国庆假期事情不多,就花时间梳理一下自己的秋招。2019届的秋招整体形势,总结起来就是,时间脉络与过去一致,岗位与行业发展会有此消彼长的趋势。总体分为3-6月份春招实习生招聘、6-8月份提前批内推环节和8月底开...原创 2018-10-08 16:39:49 · 1721 阅读 · 2 评论 -
ISODATA聚类分析算法原理与C++实现
文章目录Kmeans聚类算法的原理ISODATA聚类算法的原理ISODATA算法的基本步骤关键步骤原理代码实现代码结构主要类实现代码使用代码地址聚类效果分析内容参考最近在填之前的坑,尝试用C++实现一个ISODATA的聚类分析算法,目前代码已经码完了,就慢慢的把文档给补上,记录一下自己零零碎碎做的工作;给自己立的flag画一个句号吧。Kmeans聚类算法的原理在分析一些数据前,我们需...原创 2019-01-14 14:46:52 · 3751 阅读 · 2 评论 -
STL algorithm算法(02):all_of
函数调用形式:template bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred);Test condition on all elements in range针对范围内所有元素的检测条件Returns true if pred returns true for a原创 2017-02-15 19:48:29 · 404 阅读 · 0 评论 -
STL algorithm算法(01):adjacent_find
这段时间非常苦恼,看完基本的C++语法知识入门后,没有找到进一步提高的路径,数据结构与算法看的十分吃力,进度缓慢,算是进入瓶颈期了,而且手头上没有可以实践提高的项目。思索下来,STL模板库作为C++的一个重要工具,我只对其容器类有较多的了解,对于算法部分比较陌生,加上这段实践有闲,所以就看看C++官网的介绍,翻译下来,也是学习提高的一种方式。adjacent意为邻近的。adjacent_fin原创 2017-02-13 20:29:34 · 521 阅读 · 0 评论 -
STL algorithm(03):any_of
template bool any_of (InputIterator first, InputIterator last, UnaryPredicate pred);Test if any element in range fulfills condition检测范围内是否有任意元素满足条件Returns true if pred returns true for an原创 2017-02-17 09:32:33 · 340 阅读 · 0 评论 -
C++ primer中4.33练习逗号运算符的理解
今天在做primer的练习,发现一个问题,书上4.33练习的题目如下:说明下面这个表达式的意义:someValue?++x,++y:--x,--y;在CLion下编辑实验如下:/** * test 4.33 * 逗号运算符的效果 */#include using namespace std;int main(){ int x = 10;原创 2016-10-15 11:45:47 · 1069 阅读 · 0 评论 -
C++中unsigned的小疑问
今天刷书后的习题,在c++ primer 习题集上看到一段代码:unsigned myCnt(){ static unsigned iCnt = -1; ++iCnt; return iCnt;}感觉很困惑,static unsigned后面没有加类型名,但是运行的时候没有出错,也达到了预期的目的,后来,百度,得知unsigned不加类型名时,默认表示无符号整原创 2016-10-26 14:04:10 · 1469 阅读 · 2 评论 -
linux c++编程中vim与命令行中中文乱码问题的应对
刚接触linux下的编程,这里我用的系统版本是CentOS7,查询系统信息如下所示[root@bogon etc]# uname -aLinux bogon 3.10.0-327.36.1.el7.x86_64 #1 SMP Sun Sep 18 13:04:29 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux在编程时发现,命令行与vim显示时,中文显示会出原创 2016-10-02 09:50:54 · 1398 阅读 · 0 评论 -
未定义默认构造函数的类与vector
C++ primer第七章,练习7.44:vector vec(10);其中NoDefault是未定义构造函数的类,该定义是不合法的。因为,原创 2016-11-16 15:47:01 · 1498 阅读 · 0 评论 -
C++中struct与class的区别以及联系
上一周因为参加一个比赛,整个都投入进去了,也就荒废了看书以及博客,不过不代表没有遇到新的问题。在比赛中,我用到了结构体struct,在我过去的印象里,struct代表结构体,主要存放一些数据变量,打包起来,成为一个整体,不过前段时间在C++ primer书上类那一章看到,struct与class似乎是可以部分混用的,可以存放函数,可以继承以及派生,这让我感到疑惑,struct和class到底有原创 2016-11-16 15:48:28 · 540 阅读 · 0 评论 -
forbids in-class initialization of non-const static member不能在类内初始化非const static成员
今天写程序,出现一个新错误,好吧,感觉每次编程都能遇到新问题,我期待久病成医的那一天,哈哈。事故代码如下:class Employee{public: Employee() {myid = id++;}; Employee(const std::string &n) {myid = id++;name = n;}; int get_id() {return myid;} con翻译 2016-12-12 14:46:47 · 7342 阅读 · 0 评论 -
C++中,在循环中用“!=”与“<”的区别
今天写代码的时候,发现了一个错误,源代码如下 for(unsigned i = 0;i!=s.size();++i) { cout << s.size() <<endl; if(s[i] >= 'A' && s[i] <= 'Z') { s[i] -= ('A' - 'a'); }原创 2016-11-23 17:18:16 · 1952 阅读 · 0 评论 -
数据结构-C++实现(三)循环链表
偷懒很久不发数据结构了,其实代码都写好了,但是书上的应用迟迟吃不透搞不定,所以也就没有及时发出来。我看的是《数据结构、算法与应用 C++语言描述》这本书,配合着网易云课堂上面的一个入门级别的数据结构公开课一起学习。老实说,了解一个数据结构不是很难,但是搞清楚她们的应用场合,与适当的算法结合起来处理问题真么难上加难,比如什么约瑟夫环,汉诺塔,不得不佩服开拓这门学科的科学家们。好了,废话说太多原创 2017-01-03 17:46:38 · 654 阅读 · 0 评论 -
C++ primer 5th 读完的一点心得体会
作为一个通信的研究生,其实我对自己所从事的方向还是有很多迷茫的。本科的时候参加过很多比赛,搞过单片机、ARM嵌入式,做过信号处理,学过matlab,学过C、C++,但是始终觉得自己浮于表面,并没有一种深入的感觉。好比我做了一个四旋翼飞行器,我知道它的控制原理,我花足够多的时间也能看明白它里面的每一个函数,我也可以对这个开源的飞控做适当的修改,但是也就仅此而已了,如果让我自己从无到有的搭建这样一个庞原创 2016-12-18 10:42:11 · 2651 阅读 · 2 评论 -
C++模板类的成员函数定义与声明必须在一个头文件中
今天编写数组链表的程序,出现了一个问题,我在ArrayList.h中定义了一个模板类ArrayList,然后按照原来的习惯,在另一个源文件ArrayList.cpp中对模板类的成员函数进行定义,编译也通过了,但是当我在main函数对模板类进行实例化时,编译器报错,显示为成员函数undefined,就是说我的成员函数未定义,这就让我纳闷了。我试着将构造函数的定义移到头文件里去,再编译,运行,成功原创 2016-12-19 10:56:57 · 4186 阅读 · 0 评论 -
数据结构-C++实现(一):数组链表
数据结构C++实现第一发,主要有几部分构成,分别是一个抽象类LinearList.h、数组链表的头文件ArrayList.h以及main.cpp源文件。LinearList.h文件具体信息如下:#ifndef INC_01_ARRAYLIST_LINEARLIST_H#define INC_01_ARRAYLIST_LINEARLIST_H#include templa原创 2016-12-19 19:40:56 · 1897 阅读 · 0 评论 -
数据结构-C++实现(二):单向链表
和数组不同,链表的数据结构内部多了一个指针指针下一个位置,使得在链表中插入删除特定位置的元素效率很高,代码实现依旧分为三个部分,抽象类LinearList.h,模板类chain.h以及main函数源文件。废话不多说,我们看代码,这次LinearList.h抽象类里面多了两个成员函数一个是push_back(),一个是clear()://// Created by djf on 20原创 2016-12-20 17:08:34 · 613 阅读 · 0 评论 -
浅谈Memory barrier
文章目录浅谈Memory barrier1. 内存乱序2. 锁机制3. 内存屏障4. 参考浅谈Memory barrier1. 内存乱序我们常规思维下,代码的执行是按照我们撰写的顺序来执行的,类似如下的方式:1. 读取程序计数器PC指向的指令2. PC指向下一条指令3. CPU执行当前指令4. 重复上述过程直到程序执行完成这是很原始的,类比小学课本里面的泡茶问题,我们泡茶有几个步...原创 2019-08-04 15:29:41 · 919 阅读 · 0 评论