![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
IT-Why
C、C++、Python、ACM算法竞赛、嵌入式、信息安全、电子DIY
展开
-
C/C++多线程编程
pthread_create函数原型:int pthread_create((pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)用法:#include <pthread.h>功能:创建线程(实际上就是确定调用该线程函数的入口点),在线程创建以后,就开始运行相关的转载 2017-04-23 19:29:06 · 515 阅读 · 0 评论 -
string转LPCWSTR
LPCWSTR stringToLPCWSTR(std::string orig){ size_t origsize = orig.length() + 1; const size_t newsize = 100; size_t convertedChars = 0; wchar_t *wcstring = (wchar_t *)malloc(sizeof(wcha转载 2017-12-07 21:00:01 · 603 阅读 · 1 评论 -
VC判断文件或目录等是否存在
转自:http://blog.csdn.net/u012494876/article/details/51204615判断文件是否存在// 判断文件是否存在BOOL IsFileExist(const CString& csFile){ DWORD dwAttrib = GetFileAttributes(csFile); return INVALID_FILE_ATTRIBUT转载 2017-12-02 21:40:18 · 999 阅读 · 1 评论 -
C++函数
构造函数构造函数是一种用于创建对象的特殊成员函数,当创建对象时,系统自动调用构造函数。构造函数名与类名相同,一个类可以拥有多个构造函数(重载),构造函数可以有任意类型的参数,但不能具有返回类型,连Void也不可以,它有隐含的返回值,该值由系统内部使用。构造函数的作用是:为对象分配空间;对数据成员赋初值;请求其他资源。如果一个类没有定义构造函数,编译器会自动生成一个无参的默认构造函数。析构函转载 2017-09-24 21:39:17 · 226 阅读 · 2 评论 -
程序内存分配
程序占用内存栈区stack由编译器自动分配释放,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 堆区heap一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回 收。全局区(静态区)static全局变量和静态变量的存储是在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和静态变量在相邻的另一块区域,程序结束后由系统释放。文字常量区常量字符串存转载 2017-11-29 11:35:33 · 145 阅读 · 0 评论 -
C++智能指针
智能指针是存储指向动态分配(堆)对象指针的类。除了能够在适当的时间自动删除指向的对象外,他们的工作机制很像C++的内置指针。智能指针在面对异常的时候格外有用,因为他们能够确保正确的销毁动态分配的对象。他们也可以用于跟踪被多用户共享的动态分配对象。三种智能指针使用包含头义件memory#include <iostream>#include <string>#include <memory>clas转载 2017-11-29 09:47:07 · 141 阅读 · 0 评论 -
GitHub下载项目中某个文件夹或文件
亲测有效 首先安装svnsudo apt-get install subversion确定导出的文件夹URL,如https://github.com/It-Why/LaserLine/tree/master/LaserLine/LaserLine 然后把其中的tree/master替换成trunk 然后用svn checkout到本地即可svn checkout https://github.原创 2017-11-20 10:47:56 · 4750 阅读 · 0 评论 -
VC,Http库(get,post,upload(File))
VC写的Http库,使用了wininet下载网址https://www.codeproject.com/Articles/7828/CHttpClient-A-Helper-Class-Using-WinInet原创 2017-10-23 19:11:41 · 1159 阅读 · 0 评论 -
网络编程Socket
Socket定义Socket即套接字,用于描述地址和端口,是一个通信链的句柄。应用程序通过Socket向网络发出请求或者回应。Socket分类Sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);前两种较常用。 1、SOCK_STREAM表示面向连接的数据传输方式。数据可以准确无误地到达另一台计算机,如果损坏原创 2017-09-11 19:31:28 · 299 阅读 · 0 评论 -
判断两个链表是否相交
链表无环如果两个链表相交于某一节点,那么在这个相交节点之后的所有节点都是两个链表所共有的。也就是说,如果两个链表相交,那么最后一个节点肯定是共有的。先遍历第一个链表,记住最后一个节点,然后遍历第二个链表,到最后一个节点时和第一个链表的最后一个节点做比较,如果相同,则相交,否则不相交。时间复杂度为O( len1 + len2),因为只需要一个额外指针保存最后一个节点地址,空间复杂度为O(1)。判断链表转载 2017-09-24 21:14:33 · 178 阅读 · 0 评论 -
C++注意点
拷贝构造函数的参数类型必须是引用转自:http://blog.csdn.net/hackbuteer1/article/details/6545882 原因: 如果拷贝构造函数中的参数不是一个引用,即形如CClass(const CClass c_class),那么就相当于采用了传值的方式(pass-by-value),而传值的方式会调用该类的拷贝构造函数,从而造成无穷递归地调用拷转载 2017-09-24 20:53:47 · 255 阅读 · 0 评论 -
宏定义求数组元素个数
宏定义求数组元素个数#define Length(table) (sizeof(table) / sizeof(table[0]))转载 2017-08-28 20:48:48 · 8564 阅读 · 1 评论 -
A*寻路算法
转自:http://www.cnblogs.com/technology/archive/2011/05/26/2058842.html地图二位数组表示地图,其中包含障碍物、起点和终点。列表开启列表:等待检查的方格的列表 关闭列表:存放不需要再次检查的方格公式F=G+H G:起点到某方格的移动耗费。 H:某方格到终点的预计耗费,是一直不变的。寻路步骤1、将起点存入“开启列表”。 2、寻找起点转载 2017-08-28 20:43:58 · 242 阅读 · 0 评论 -
Qt5.8 linux程序打包发布
转自:http://blog.csdn.net/hjl_1991/article/details/50365927 为便于描述,我们这里假设生成的程序名称为test(即要发布的程序名称)1. QtCreate使用Release版本编译将编译后生成的可执行程序(如:test)复制到一个空目录下2.使用ldd命令查看和导出需要的库在步骤1的目录下新建一个pack.sh文件,文件内容如下:#!/bin/转载 2017-07-26 21:23:45 · 5312 阅读 · 0 评论 -
版本控制介绍及使用
编写代码前一定先从仓库更新!!!避免其他人更改了代码,导致你更改后无法提交原创 2017-07-18 20:03:30 · 617 阅读 · 0 评论 -
Git使用
安装Git软件第一步:Git初始化打开Git Bash设置名字和email$ git config --global user.name "username"$ git config --global user.email "123456789@gmail.com"然后会在家目录下生成一个.gitconfig,可用cat命令查看或vim修改克隆clone一个仓库转载 2017-04-24 23:05:30 · 241 阅读 · 0 评论 -
VC 计算程序运行时间
GetTickCount()函数时间单位:毫秒ms使用示例long t1 = GetTickCount();//程序段开始时取得系统运行时间(ms)//Something to do//End do somethinglong t2 = GetTickCount();//程序段结束时取得系统运行时间(ms)cout << "Time of Code Run:" << t2 - t1 << en翻译 2017-12-27 19:33:25 · 818 阅读 · 0 评论