- 博客(83)
- 资源 (2)
- 收藏
- 关注
原创 c++中memset给一个struct或class初始化,赋0
memset函数的用法将缓冲区设置为指定的字符。下面是网上常见的说法,也就是memset函数的用法函数功能是:将s所指向的某一块内存中的前n个字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针,它是对较大的结构体或数组进行清零操作的一种最快方法。头文件是:<mem...
2018-10-24 10:01:24 7383
原创 c++多线程编程:join()函数与detch()函数的区别。
join函数与detch在一个线程中,开了另一个线程去干另一件事,使用join函数后,原始线程会等待新线程执行结束之后,再去销毁线程对象。这样有什么好处?---->因为它要等到新线程执行完,再销毁,线程对象,这样如果新线程使用了共享变量,等到新线程执行完再销毁这个线程对象,不会产生异常。如果不使用join,使用detch,那么新线程就会与原线程分离,如果原线程先执行完毕,销毁线程对象及...
2018-10-15 11:00:15 16850 6
原创 用c++基于模板实现的可设置容量的队列(Queue)
环境介绍c++14标准,clion+mingw编译成功,vs2008下面编译也成功队列及实现介绍先进先出的特性实现时基于数组的,可以构造时传入队列容量由于基于模板编程,队列可以存储多种数据类型,便于扩展实现了基本操作:尾部插入、头部删除、遍历源代码代码在vs2008上也可以直接运行#include <iostream>template <clas...
2018-10-09 16:30:24 3147
原创 用c++基于模板实现的一个可设置容量的栈(Stack)
介绍该程序是在c++14标准下编写的,目测c++11和17都是可以使用的使用的是clion+mingw编译通过栈的介绍只能在栈顶插入和删除的一种数据结构满足后进先出的原则,所以适用于这种场景具体实现介绍使用数组保存栈内容由于使用模板,改栈可以保存多种类型的数据基本操作是入栈和出栈源码#include &lt;iostream&gt;template &lt;cl...
2018-10-09 10:58:27 848
原创 用c/c++自己动手实现一个链表LinkList
链表的特点便于插入删除,这些操作只要改变指针的指向遍历查找O(n)排序复杂度也极大所以适合插入删除频繁的程序。实现思想自建基本的节点数据结构明确基本操作:初始化、插入、删除、按位置查找、按值查找等等实现代码注:vs2008// LinkList.cpp : Defines the entry point for the console application.//...
2018-10-08 15:47:46 3625
原创 理解c++多线程编程
多线程编程工欲善其事必先利其器CLion安装mingw并配置以支持c++11多线程编程本篇博文不是主要介绍互斥锁之类的,是理解线程的执行,以便以后有把握的写多线程程序。#include&amp;amp;lt;thread&amp;amp;gt;#include&amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;mutex&amp;amp;gt;
2018-09-30 14:56:28 4750 8
原创 CLion安装mingw并配置以支持c++11多线程编程
自己踩的坑我事先已经知道clion不自带c++编译器,而我再windows下,肯定要装mingw了然后自己就轻车熟路的把mingw的c编译器、c++编译器都装好,我以为这时候再把编译环境加到clion配置里面就万事大吉了然而,啪,打脸开始了按上面配置好,hello world肯定要跑一下,没问题测试一下c++11新特性auto,没问题测试一下thread,包含thread头文件没问题...
2018-09-29 16:58:15 8325 1
原创 自己动手用c++实现哈希表
哈希表查找效率约等于1实现思想介绍一般的hash思想未采用模板,简单的实现key是int,value是string把输入的key值经过hash函数计算,算出它要放入的桶的编号采用一个指针数组记录各个桶每个桶里都有50个key_value对象,这里未采用链表,只是用数组简单那模拟缺点batch类设计的有问题,没采用链表,不能动态增加insert方法,不能改变已有的ke...
2018-09-27 13:39:41 4211 1
翻译 安全开发生命周期(SDL)禁止的函数调用(翻译)
文章目录原文名正文表1. 禁止的字符串复制函数和它的替代函数表2. 禁止的字符串连接函数和它的替代函数表3.禁止的sprintf函数和替代函数表4.禁止的“n”sprintf函数和替换表5.禁止变量参数sprintf函数和替换表6.禁止变量参数“n”sprintf函数和替换表7.禁止的“n”字符串复制功能和替换表8.禁止的“n”字符串连接函数和替换表9.禁止的字符串标记化功能和替换表10.禁止的M...
2018-09-25 14:06:25 1081
原创 标准C++
目录标准c++1&amp;gt; 公用库2&amp;gt; 动态内存管理3&amp;gt; 数值限制4&amp;gt; 错误处理5&amp;gt; 字符处理库6&amp;gt; 容器库7&amp;gt; 算法库8&amp;gt; 迭代器库9&amp;gt; 数值相关库10&amp;gt; 输入输出库11&amp;gt; 本地化库12&
2018-09-21 15:16:44 498
原创 c++基本数据类型的介绍、一些常用windows数据类型介绍及转换
文章目录1&amp;amp;gt; 怎么计算一个类型的范围?2&amp;amp;gt; 常见的c++数据类型的字节数3&amp;amp;gt; 一些常见windows数据类型引言windows编程常用的数据类型字符串转换成窗口句柄HWND1&amp;amp;gt; 怎么计算一个类型的范围?以前大学学的8086是16位的寄存器,现在32,64的都有了;那么现在看看数据类型单位是字节(8位)也是合理的,提高性能,便于字节对齐,提高内存访问效率
2018-09-21 11:30:20 919
原创 C++字符串的类型转换(std::string, std::wstring, c-string)
本文列出string、wstring、char、wchar转换成int、double、float、long、int64、unsigned int64等类型的方法。函数:atoi、atof、atol、atoll、itoa、strtod、strtof、strtol、strtold、strtoll、strtoul、strtoull、_strtoi64、_wcstoi64、_strtoi64_l、 _wcstoi64_l、_strtoui64、_wcstoui64、_strtoui64_l、_wcstoui64_l
2018-09-19 13:53:37 4614
原创 C++预处理总结、系统性学习心得
预处理不带参数的宏定义带参数的宏定#include语句的用法条件编译命令的使用 #pragma#line#undef#ifdef #ifndef#if不带参数的宏定义#define PI 3.14 # 表示这是一条预处理命令 PI 宏名,它是一个标识符 3.14 字符串,它是代替宏名的真实值* 在编译预处理时,...
2018-09-14 11:04:00 493
原创 vs project build order引发的问题:LINK : fatal error LNK1181: cannot open input file 'zoom_ui_style.lib'
问题的解决项目描述 我这3个project,1、2、3;1是static dll,2是exe,3是static dll2依赖于1、3;3依赖于1;首先坑定去stackflow上面逛了一圈主流是说你这个link的配置没配置好,让你配置,blabla。。。。 但是我知道我的配置是没问题的,然后我往下翻,发现了另一个答案,如下图: 大致意思是你这个项目各个project build的...
2018-09-13 15:39:54 1957
原创 c++前置声明用于解决:c++编译遇到问题error C2143: syntax error : missing ';' before '*'
这个错误还可能导致以下错误:error C4430: missing type specifier - int assumed. Note: C++ does not support default-intrror C2061查阅文档msdn发现: * 导致这种错误的可能有一下一些情况: * 在不该加分号的地方加分号 * 在该加分号的地方不加分号 * 头文件循环包含这...
2018-09-10 09:43:45 19658 3
原创 mfc对话框中(Button)控件的显示与隐藏
控件的基本认识控件分为静态控件和动态控件静态控件:一般我们从右边的工具栏上拖到对话框上的控件就是静态控件动态控件:一般我们创建控件类继承于mfc的类,比如CButton,那么new出来的对象,就是动态创建的控件控件的隐藏与显示静态控件的隐藏与显示与动态控件一样,所以我就以静态控件为例子控件ID与句柄一个项目中对于一个控件对象的唯一标识是控件ID,而一个对象...
2018-09-05 17:00:17 15644
原创 effective c++第三篇
资源管理资源概述c++中最常见的资源就是内存资源,管理不好内存资源容易造成内存泄漏。其它常见资源有:**文件描述器、互斥锁、图形界面中的字体和笔刷、数据库链接、网络socket等。条款13:用对象管理资源首先先理解几个常识: c++中普通的对象是存放在栈中的,当对象离开作用域,对象析构函数被调用 c++中new出来的对象是放在堆上的,如果不适用delete,它不会自...
2018-08-24 16:18:01 150
原创 effective c++第二篇
第二篇:构造、析构、赋值运算条款05:了解c++默默编写,并调用哪些函数编译器可以给类自动创造default构造、copy构造函数、析构、copy assignment操作符函数前提是你缺省了这些函数的声明和定义**在类内如果有引用类型(referrence)和const类型的成员变量的话,编译器不会提供默认的赋值操作符函数,需要自己写若不想使用编译器自动生成的函数,就...
2018-08-24 11:05:14 120
原创 effective c++笔记-第一篇
声明与定义声明:揭示函数/变量的签名,参数和返回类型 如:int fun(int)定义:实际是为各对象分配内存在构造函数前使用explicit关键字class B{ public: B(int x){}};有一个函数:void Fun(B obj); 调用 说明 有explicit 无explicit ...
2018-08-23 16:59:56 509
原创 笔记本外接显示屏,FPS下降严重的解决办法
基本情况说明 我今天刚买的1080p显示屏,我笔记本原来的屏幕也是1080p的,所以理论上我的FPS不会下降。但是我接上显示屏后,win+p选投影方式仅第二屏幕,疯狂的掉fps,lol原来最高画质130,现在40,最小化chrome,会有明显的闪烁。 电脑配置 牌子:未来人类s4 双显卡:集显HD630+独显GTX1060 内置屏:LG1080p 外接屏:HK1080p...
2018-08-14 16:21:01 118933 6
原创 怎么在静态库中建对话框,生成lib并在MFC应用程序中使用它?
要求最近一个项目,需要使用一个static library,在静态库中创建多个对话框,并在,同一个solution下的另一个MFC应用程序中调用。--------------------------------------------------------------分割线在挣扎了几天,并在国外网站疯狂的溜达了许久,get到了如下信息:一般不在static library里使用对话...
2018-08-08 18:03:48 1657
原创 win10 git入门+简单示例
目录1.首先是下载windows版本的git2.简单入门1.首先是下载windows版本的git下载链接windows版本git具体安装和配置参考网上的教程,很简单 官方文档git中文官方文档2.简单入门声明:本文是简单的入门,不提关于branch和版本控制的一些高级操作。 先是配置: git config --global user.name "you...
2018-07-24 12:33:04 5396 1
原创 问题:调试时控制台一闪而、每个cpp文件都要include"stdafx.h"、类与方法分离
目录配置+环境 调试时控制台一闪而过每个cpp文件都要include"stdafx.h"类与方法分离 配置+环境 vs2008+c++ 调试时控制台一闪而过 解决办法:用快捷键ctr+f5,不要用f5 代码末加上cin.get() 代码末尾加上system("pause") ,大材小用 每个cpp文件都要include"stdaf...
2018-07-17 16:12:18 206
原创 C++链表的理解及创建链表(附源码)
链表:有两部分,一是数据域,二是指针域。指针指向下一个节点。typedef struct Lnode{ int data; Lnode *next;}*Linklist;对于初学者可能不太懂这段代码,它等价于:struct Lnode{ int data; Lnode *next;};typedef struct Lnode* Linklist;就是说定义了一...
2018-05-07 20:41:10 5525 1
原创 Anacoda+OpenCv
安装anacoda,提一下,国内好的源就是清华的源,可以从那里下载在anacoda里装opencv1. 下载安装就不说了,和普通软件没啥两样2. 在anacoda里装opencv创建一个python环境(我的是python3.6)安装opencv搜索opencv选中再点击apply,这样anacoda会自动安装所需文件打开安装好的vs code 验证是否安装成功创建一个python文件。代码如下:...
2018-05-01 19:43:12 823
原创 从python自己写一个shuffle函数-----洗牌函数,谈random模块
废话不多说,上代码:>>> import random>>> def shuffle(l):... tmp=list()... for i in range(0,len(l)):... if len(l)!=0:... r=random.randint(0,len(l)-1)... ...
2018-04-27 20:46:33 3125 4
原创 python中深复制与浅复制
先看一下官方文档给的区别及注意(python3.6):The difference between shallow and deep copying is only relevant for compound objects (objects that contain other objects, like lists or class instances):A shallow copy con...
2018-04-25 17:48:48 332
原创 python中基本数据类型-----内置数据类型
简单数据类型整形 int浮点型float复数类型complex布尔类型bool容器类型字符串str元组tuple列表list集合类型set字典类型dict注:1,2,3又叫序列对象,它们都可以通过索引的方式进行访问;4,5则不可以,字典是键值对构成的映射数据类型,可以通过键对数据进行访问。简单数据类型的用法整形>>> a=2+3>>> a5>>...
2018-04-24 11:12:42 3430
原创 c++中static
static一经初始化就不会再次被初始化,只初始化一次类内的static成员函数,只能被static成员函数调用或者调用static成员函数全局变量加static,会默认初始化成0static的用法点击打开链接简述static关键字在c/c++中的作用点击打开链接C++中static关键字作用总结点击打开链接C/C++中STATIC用法总结点击打开链接...
2018-04-23 21:30:55 188
原创 ICMP协议的功能
产生ICMP报文的情况:IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。主要功能:· 侦测远...
2018-04-20 16:55:30 9605
原创 爱奇艺笔试题
#include<iostream>using namespace std;int main(){ int a[2][3]={10,20,30,40,50,60}; int (*p)[3]; p=a; cout<<p[0][0]<<endl<<*(p[0]+1)<<endl<<(*p)[...
2018-04-19 22:54:35 906
原创 二维字符串数组、二维整形数组与二级指针的关系
昨天做了百度的笔试题发现编程题的函数都这样:vector<int> fun(char **arr);vector<int> fun(int **arr);不久前阿里的也遇到了,不过没重视,这次百度的彻底暴露了自己这一短板,编程题那做的叫一个别扭,叫一个惨,所以这次就好好研究一下二级指针和二维数组的关系一般二维字符串数组的使用: char c[3][4]={"abc"...
2018-04-19 16:36:22 3275
原创 最长公共子序列求解算法及代码实现
问题描述: 最长公共子序列问题是在2个序列集合中,查找最长的公共子序列。 比如字符串: s1="ABCDE" s2="ACEF" 那么字符串s1与字符串s2的最长公共子序列就是"ACE" 算法实现: 利用动态规划的方法实现(也叫打表法):2个字符串数组X[m]、Y[n]保存2个序列集合。用一个辅助二维数组,这个二维数组的L[i][j]保存的是X[0…i]和Y[0
2017-11-30 17:44:46 5633
原创 递归求解字符数组全排列问题
问题描述: 编写一个算法,就地生成字符数组 S[1..n]的所有排列,要求算法终止时S[1..n]保持 态成表使S 初始状 态。就地生成表示不使用S以外的数组。 算法分析: 因为是全排列问题,时间复杂度是O(n!),也是最优的时间复杂度。 算法设计:/* *递归求解字符数组的全排列 * */#include <iostream>#include <string>using nam
2017-11-26 10:18:21 645
原创 直接算法+动态规划算法求解最大子段和
问题介绍: 在一个有限序列,任意连续的序列的和的最大值,记为最大子段和。 直接算法: 确切的说是改进后的直接算法,时间复杂度是O(n^2) 动态规划算法 规定当子段和为负整数时,字段和为0; 时间复杂度是O(n); 改进的直接算法代码: 动态规划算法代码:
2017-11-25 17:51:28 3949 1
原创 c++表达式求值——简易版
问题:本程序表达式求值很简陋,因为:操作数只有0-9,这个比较好改动,但是简易版嘛,就偷个懒操作符只有+ - × / 这个要是加个括号感觉就麻烦大了,时间有限,所以~主要思想:有两个栈,一个保存操作数,一个保存操作符当前字符是数字时,直接入栈当前字符是操作符时,分2种情况 操作符栈空,直接入栈操作符栈非空,把当前的操作符与栈顶的操作符进行优先级的比较。若栈顶操作符优先级>=当前操作
2017-11-21 22:45:13 6042
原创 将bios中的boot mode 从uefi改为legacy之后,进不去bios
问题:在我将bios中的boot mode 从UEFI改为legacy之后,我再按F2就进不去biso了。首先介绍一下自己的机器配置:win 10 +linux mint18.2 双系统双系统都是UEFI引导解决方法:首先不要慌,搜一下自己的机子进bios都有哪些键,比如F2、ESC、DEL自己常用哪个键进,比如我常用F2进,但是改之后就进不去了,这时候就试试其它的键,我就是在按DEL再次
2017-11-21 09:16:52 31768 1
原创 c++找众数及其重数
问题描述:在一个由n个元素组成的表中,出现次数最多的元素被称为众数。试写一个寻找众数及其重数的有效算法,并分析其计算时间复杂性。 方法: 1. 首先用快排把数据排个序 2. 再使用find方法找出众数及其重数 注:这里第一步就跳过了,因为快排可以调库函数,这里主要是测试一下find方法的正确性。 代码如下:#include <iostream>using namespace std;vo
2017-11-20 11:00:13 6891
原创 分治法实例-找下标,下标与对应值相等
如题:设n个不同的整数排好序后存于T[1..n]中,若存在一个下标i(1≤ i ≤ n),使得T[i]=i。试设计一个有效算法找到这个下标,要求算法在最坏情形下的计算时间为O(log n)。 笔记:一般来说如果没有时间的限制,那么O(n)遍历一遍也就出来了,但是这个要求是O(log n),所以可以考虑分治法,折半查找。#include<iostream>using namespace std;i
2017-11-19 22:39:47 1617
原创 堆排序算法的实现(HeapSort)
堆排序的时间复杂度是O(nlgn),是原址排序。这个堆排序主要写了三个函数:Max_heapify:这个是整堆函数,是将i节点整成符合大顶堆的规则,即父节点大于左右孩子节点。我写的这个函数可能和书上的不太一样,有3个参数,由于我用的是静态数组写的,在后面heap_sort函数中会逐渐减小数组元素个数,实际上不是减少,而是因为最后面有排好序的元素了,我们调用整堆函数不能将排好序的元素再整一下
2017-09-29 17:32:21 403
HDU 2136 Largest prime factor
2015-06-19
素数筛法打表
2015-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人