自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (3)
  • 收藏
  • 关注

原创 c++ 容器map

1、map的基本特点:map是STL的一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有...

2018-07-02 19:03:19 442

原创 c++ 容器set

1、set基本特点:        set集合容器实现了红黑树(Red-BlackTree)的平衡二叉检索树的的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元...

2018-07-02 18:08:25 603

原创 序列式容器vector、list、deque比较

vector : vector拥有一段连续的内存空间,能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当插入较多的元素后,预留内存空间可能不够,需要重新申请一块足够大的内存并把原来的数据拷贝到新的内存空间。这些影响了vector的效率,但是实际上用的最多的还是vector容器,建议大多数时候使用vector效率一般是不错的。lis...

2018-07-02 14:16:20 296

原创 c++ 容器deque

1、deque特点:deque是双端数组,而 vector 是单端的。deque在接口上和 vector 非常相似,在许多操作的地方可以直接替换。deque可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法,这个等下会详讲)。 deque 头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除元素比较费时。 2、deque实现原理(中控器):deque是连续空间(至少逻辑上看来...

2018-07-02 14:11:49 334

原创 c++ 容器list

1、 list特点:list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的实现大概是这样的:list的每个节点有三个域:前驱元素指针域、数据域和后继元素指针域。前驱元素指针域保存了前驱元素的首地址;数据...

2018-07-02 13:42:59 230

原创 c++ 容器vector

1、 vector特点:vector:就是动态数组,它也是在堆中分配内存,元素连续存放,有保留内存,如果减少大小后,内存也不会释放.如果新值>当前大小时才会再分配内存。它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进...

2018-07-02 13:22:46 373

原创 c++ STL基本概念

1、什么是STLSTL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++Standard Library)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用...

2018-07-02 11:12:14 1086

原创 c++模板

1、什么是泛型编程泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象这样的事;泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型即是指具有在多种数据类型上皆可操作的含义,与模板有些相似。STL巨大...

2018-07-01 12:22:04 178

原创 生产者消费者问题

题目:有生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,所有生产者和消费者都是异步方式运行的,但它们必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经装满产品且尚未被取走的缓冲区中投放产品。假设条件:1.有5个生产者,...

2018-06-20 22:54:05 182

原创 C++标准库之condition_variable(条件变量)

       <condition_variable>是C++标准程序库中的一个头文件,定义了C++11标准中的一些用于并发编程时表示条件变量的类与方法等。       条件变量是并发程序设计中的一种控制结构。多个线程访问一个共享资源(或称临界区)时,不但需要用互斥锁实现独享访问以避免并发错误(称为竞争危害),在获得互斥锁进入临界区后还需要检验特定条件是否成立:  (1)、如果不满足该...

2018-06-20 10:45:03 1365

原创 三线程顺序打印ABC问题

题目:编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。#include <iostream>#include <thread>#include <condition_variable>using namespace std;mute...

2018-06-20 10:30:50 486

原创 线程同步互斥机制

线程同步互斥机制4种最基本方法实现——临界区(关键段 critical section)、互斥量(mutex)、信号量(semaphore)、事件(event)。1、线程(进程)同步的主要任务在引入多线程后,由于线程执行的异步性,会给系统造成混乱,特别是在急用临界资源时,如多个线程急用同一台打印机,会使打印结果交织在一起,难于区分。当多个线程急用共享变量,表格,链表时,可能会导致数据处理出错,因此...

2018-06-20 09:50:19 745

原创 进程、程序、线程概念

1、进程(process)狭义定义:进程就是一段程序的执行过程。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。简单的来讲进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data regi...

2018-06-20 09:06:18 1997

原创 gcc、g++、make、cmake区别

        首先介绍一下GCC:GNU Compiler Collection(GNU 编译器集合),在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前 Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C...

2018-06-20 00:14:36 7518 1

原创 gcc、g++、cmake编译c++11问题

Ubuntu版本为:16.04, gcc/g++版本为:5.4.0,无法编译c++11,解决方法如下:gcc、g++在编译指令中加: -std=c++11如:gcc test.cpp -o test -std=c++11cmake编译在CMakeLists.txt文件中加一行:add_definitions(-std=c++11)...

2018-06-19 23:16:11 2215

转载 C++中的static关键字的总结

  C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#inc

2017-08-15 22:42:48 181

转载 腾讯Android客户端开发面试总结

https://mp.weixin.qq.com/s/lSg6EFcaSoVtlLcpfTBedA

2017-04-17 09:18:31 5302

原创 一个很好的深度学习网站

深度学习世界:http://www.dlworld.cn/

2017-04-13 09:39:43 606

转载 Java中堆内存和栈内存

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器

2017-04-11 10:57:37 302

原创 win7下安装vs2008失败——解决方法

错误日志:解决方法:1、把vs2008镜像文件下的\WCU\WebDesignerCore\WebDesignerCore.EXE 手动解压到一个地方(注意解压出来的文件夹里面有个Office.zh-cn)2、找一个Office 2007光盘或光盘镜像,找到Office.zh-cn文件夹,把该文件夹复制,然后覆盖到上一步解压中的Office.zh-cn中3、在第一步解压出来的文

2014-03-31 00:59:42 960

opengl math3d

opengl超级宝典中的例程所用到的math3d库,包括math3d.h和math3d.cpp

2014-05-19

opencv 摄像机标定 vs2010

在vs2010环境下用opencv写的摄像机标定程序

2014-04-03

vs2008 番茄助手(visual assist)破解 亲测

最新破解版番茄助手,适用于vs2008,vs2010,已亲测

2014-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除