![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++相关
JingweiZhu1990
这个作者很懒,什么都没留下…
展开
-
getopt不能反复使用的问题
尝试程序中利用输入获取命令参数,如下程序:#include #include int main(){ int argc = 2; char *argv[10]; int oc; argv[0] = "help"; argv[1] = "-l"; while((oc = getopt(argc,argv,"l")) != -1)原创 2015-01-10 21:13:22 · 1324 阅读 · 0 评论 -
LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
http://blog.chinaunix.net/uid-20385936-id-3506149.html连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新的cvtres.exe替换老的文件即可,替换之前记得备份一下,如果转载 2014-05-28 14:57:38 · 495 阅读 · 0 评论 -
WideCharToMultiByte和MultiByteToWideChar
int MultiByteToWideChar( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);原创 2014-07-21 19:18:52 · 755 阅读 · 0 评论 -
关于左值与右值--入门学习
之前一直停留在一个左值和右值表层概念。转载 2014-06-10 19:29:34 · 747 阅读 · 0 评论 -
pthread_create会导致内存泄露
转自:http://blog.chinaunix.net/uid-22663647-id-1771775.html今天pao转载 2014-07-01 11:38:32 · 723 阅读 · 0 评论 -
从反汇编理解堆栈及printf
#include int main(){ long long a = 1, b = 2, c = 3; printf("%d %d %d\n", a,b,c); return 0;}//Tencent某年实习生笔试题目原创 2014-06-08 11:40:23 · 2183 阅读 · 2 评论 -
Linux Shell 通配符、元字符、转义符使用实例介绍
说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例:1 1234[chengmo@localhost ~/shell]$lsa.txt b.txt c.old #2转载 2014-05-24 19:27:42 · 472 阅读 · 0 评论 -
N-queen
N-QueensThe n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens pu原创 2014-05-23 14:53:17 · 765 阅读 · 0 评论 -
关于scanf和fgets连用
char * fgets ( char * str, int num, FILE * stream );原创 2014-06-07 15:17:21 · 1740 阅读 · 0 评论 -
unix下struct sigaction
sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数oldactintsigaction(int signo,const原创 2014-06-08 20:46:58 · 668 阅读 · 0 评论 -
linux shell数据重定向(输入重定向与输出重定向)详细分析
http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html在了解重定向之前,我们先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个转载 2014-05-24 19:56:02 · 428 阅读 · 0 评论 -
C++ 虚函数表解析——终于弄明白
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使转载 2014-05-29 15:37:41 · 594 阅读 · 0 评论 -
构造函数不能为虚函数
虚函数对应一个vtable,vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。自己做了yige原创 2014-04-28 19:44:27 · 478 阅读 · 0 评论 -
C++中重载与重写函数区别及虚函数
C++中的虚函数(virtual function)1.简介虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout };class B: public A{public:virtual void fo转载 2014-05-29 16:26:56 · 622 阅读 · 0 评论 -
dll使用和创建的部分注意点
关于lib和dll的区别。直接转自 http://www.cppblog.com/amazon/archive/2009/09/04/95318.html关于lib和dll的区别如下:(1)lib是编译时用到的,dll是运行时用到的。如果要完成源代码的编译,只需要lib;如果要使动态链接的程序运行起来,只需要dll。(2)如果有dll文件,那么lib一般是一些索引信息,记录原创 2015-01-08 10:34:28 · 572 阅读 · 0 评论 -
关于linux下使用动态库
转自http://blog.csdn.net/dbzhang800/article/details/6918413动态库常规的搜索路径:程序构建时通过 RPATH 指定的目录LD_LIBRARY_PATH 环境变量中冒号分割的目录文件 /etc/ld.so.cache列出的库(使用工具ldconfig维护)程序构建时 RUNPATH 指定的目录(fix me)转载 2014-10-10 19:40:02 · 729 阅读 · 0 评论 -
位运算实现加减乘除
加法器的实现对于不考虑进位的加法1+原创 2014-10-06 14:45:30 · 535 阅读 · 0 评论 -
linux下c++判断文件夹空,DIR,dirent,stat等结构体详解
DIR结构体的定义:原创 2014-09-22 23:21:06 · 3900 阅读 · 1 评论 -
mmintrin.h与MMX指令集 Intrinsics函数
原帖看zhhttp://www.cnblogs.com/zyl910/archive/2012/07/19/intrin01_mmx.html原创 2014-08-08 08:27:57 · 4291 阅读 · 0 评论 -
_aligned_malloc自己实现
void* aligned_malloc(size_t size, size_t align) { void* raw_malloc_ptr; //初始分配的地址 void* aligned_ptr; //最终我们获得的alignment地址 if( align & (align - 1) ) //如果alignment转载 2014-06-20 16:03:19 · 2251 阅读 · 0 评论 -
Regular Expression Matching
Implement regular expression matching with support for '.' and '*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input st原创 2014-05-20 08:51:00 · 441 阅读 · 0 评论 -
[转载]WaitForSingleObject(转)
临界区是一种最简单的同步对象,它只可以在同一进程内部使用。它的作用是保证只有一个线程可以申请到该对象void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection );产生临界区void DeleteCriticalSection(LPCRITICAL_SECTION lpCritica转载 2014-06-17 15:48:23 · 437 阅读 · 0 评论 -
精确获取时间um级(QueryPerformanceCounter)
QueryPerformanceFrequency() - 基本介绍包含头:原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);作用:返回硬件支持的高精度计数器的频率。返回值:非零,硬件支持高精度计数器;零,硬件不支持,读取失败。QueryPerformanceFrequency() - 技术特原创 2014-05-30 17:08:01 · 1762 阅读 · 0 评论 -
c++ 时间类型详解 time_t
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix时间戳最多转载 2014-05-30 16:41:11 · 668 阅读 · 0 评论 -
c语言的可变参数
#include #include #includevoid print_ints(int args, ...){ va_list ap; va_start(ap,args); int i; for(i=0;i<args;i++) { printf("argument: %i\n",va_arg(ap,int)); }原创 2014-06-08 16:21:52 · 463 阅读 · 0 评论 -
C语言深度解剖读书笔记
本节知识:1.c语言中一共有32个关键字,分别是:auto、int、double、long、char、short、float、unsigned、signed、sizeof、extern、static、goto、if、else、struct、typedef、union、enum、switch、case、break、default、do、while、const、register、volatile、转载 2014-06-08 21:16:25 · 648 阅读 · 0 评论 -
linux中fork()函数详解(原创!!实例讲解)
http://blog.csdn.net/jason314/article/details/5640969一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,转载 2014-05-24 20:59:35 · 459 阅读 · 0 评论 -
c++文件读写基本操作
C++文件流:fstream // 文件流ifstream // 输入文件流ofstream // 输出文件流//创建一个文本文件并写入信息//同向屏幕上输出信息一样将信息输出至文件#include#includevoid main(){ ofstream f1("d:\\me.txt"); //打开文件用于写,若文件不存在就转载 2014-05-15 14:20:51 · 593 阅读 · 0 评论 -
New和delete的原理---如何在linux下检测内存泄漏
当我们在程序中写下 new 和 delete 时,我们实际上调用的是 C++ 语言内置的 new operator 和 delete operator。所谓语言内置就是说我们不能更改其含义,它的功能总是一致的。以 new operator 为例,它总是先分配足够的内存,而后再调用相应的类型的构造函数初始化该内存。而 delete operator 总是先调用该类型的析构函数,而后释放内存(图1)。转载 2014-05-14 16:58:35 · 519 阅读 · 0 评论 -
如何写makefile
转自http://www.chinaunix.net/old_jh/23/408225.html什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML转载 2014-05-04 08:58:01 · 425 阅读 · 0 评论 -
关于List容器的erase
之前在程序里面使用了list容器,其中用到了erase()函数,之前一直没出现问题,这两天突然莫名奇妙。花了点时间,搞清楚了erase()函数的机理。 常用的删除容器中元素的方法是如下(方法1): list< int> List; list< int>::iterator iter; for( iter = List.begin转载 2014-05-03 15:57:15 · 814 阅读 · 0 评论 -
cygwin下vim方向键不可用
$ cd /usr/share/vim/vim74 () $ cp vimrc_example.vim ~/.vimrc转载 2014-05-02 11:13:53 · 556 阅读 · 0 评论 -
字符串指针和字符串数组 值的修改
#include #include using namespace std;int main(){ char card[] = "ABC; //char *card = "ABC"; card[1]=card[2]; cout<<card[1];}原创 2014-05-02 14:59:41 · 1419 阅读 · 0 评论 -
逆波兰表示法RPN 实现
逆波兰式的解释逆波兰记法中,操作符置于操作数的后面。例如表达“三加四”时,写作“3 4 +”,而不是“3 + 4”。如果有多个操作符,操作符置于第二个操作数的后面,所以常规中缀记法的“3- 4 + 5”在逆波兰记法中写作“3 4- 5 +”:先3减去4,再加上5。使用逆波兰记法的一个好处是不需要使用括号。例如中缀记法中“3 - 4 * 5”与“(3 - 4)*5”不相同,但后缀记法中前者写原创 2014-04-16 08:55:50 · 967 阅读 · 0 评论 -
stringstream的用法
转自http://cppblog.com/Sandywin/archive/2007/07/13/27984.html转载 2014-04-30 16:17:25 · 527 阅读 · 0 评论 -
0429学习笔记,关于迭代器
1、指针是迭代器,string类型也是迭代器。原创 2014-04-29 21:26:33 · 590 阅读 · 0 评论 -
c语言malloc分配
项目中尝试在调用函数内malloc分配空间hou原创 2014-04-30 15:08:44 · 1518 阅读 · 0 评论 -
ZigZag Conversion
ZigZag ConversionThe string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A原创 2014-05-18 23:16:13 · 365 阅读 · 0 评论 -
关于multimap的练习和two sum
#include #include #include #include using namespace std;class Solution {public: vector twoSum(vector &numbers, int target) { vector ret(2,0); }};int main(){ multimap原创 2014-05-11 12:31:42 · 576 阅读 · 0 评论 -
String to Integer (atoi)
Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input ca原创 2014-05-19 10:44:22 · 417 阅读 · 0 评论