C++
文章平均质量分 67
追梦船
机器学习,自然语言处理方向的小菜鸟
展开
-
bzero函数
今天看代码的时候发现了个bzero函数。于是查了查,记录一下。——————————————————————————bzero函数是c++ string.h中的函数。功能描述:置字节字符串前n个字节为零且包括‘\0’。原型:extern void bzero(void *s, int n);参数说明:s 要置零的数据的起始地址; n 要置零的数据字节个数。用法:#原创 2014-12-08 10:23:56 · 13609 阅读 · 0 评论 -
C语言localtime()函数:获取当前时间和日期并转换为本地时间
localtime()头文件:#include 定义函数:struct tm *localtime(const time_t * timep);函数说明:localtime()将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm 返回。结构tm 的定义请参考gmtime()。此函数返回的时间日期已经转换成当地时区。转载 2014-12-08 13:51:19 · 7328 阅读 · 0 评论 -
jsoncpp 如何插入空数组
今天写程序,为了给前端方便展示。需要在json中插入空数组,如{”json“:[]}; 我用的是jsoncpp, 在网上搜了一下,发现可以用下面的方法解决: Json::Value root; root["FurniturePlaceItemObject"].resize(0); 用resize就能构成空数组,记录下。转载 2015-01-08 16:21:08 · 4903 阅读 · 2 评论 -
int 和long的数据范围表示相同
今天在做leetcode的时候,发现了一个以前的一个知识误区。int 和long的表示范围是完全相同的。之前我的错误认识:int 是32位,4byte。而long占64bit , 8byte。转载一个类型表示范围的博客:http://blog.csdn.net/xuexiacm/article/details/8122267[cpp] view plaincop转载 2015-01-18 15:50:09 · 2821 阅读 · 0 评论 -
[leetcode]Factorial Trailing Zeroes
问题描述:Given an integer n, return the number of trailing zeroes inn!.Note: Your solution should be in logarithmic time complexity.基本思想尾0的个数取决于5的个数。代码:int trailingZeroes(int n) { //原创 2014-12-30 19:55:58 · 2215 阅读 · 0 评论 -
虚函数及继承
1、空类,空类单继承,空类多继承的sizeof#include iostream>using namespace std;class Base1{};class Base2{};class Derived1:public Base1{};class Derived2:public Base1,public转载 2015-03-06 10:40:34 · 662 阅读 · 0 评论 -
虚函数实现总结
转载一篇非常好的讲解c++ 虚函数的文章:http://www.cnblogs.com/chenyuming507950417/archive/2012/04/15/2449020.html你也可以结合这篇文章一起看http://blog.csdn.net/chenlei0630/article/details/44096535,能够使你在虚函数实现上有个不错的认识!我会对这篇原创 2015-03-15 12:18:35 · 601 阅读 · 0 评论 -
虚继承与虚基类的本质
转自:http://www.cppblog.com/chemz/archive/2007/06/12/26135.html———————————————————————————————— 虚继承和虚基类的定义是非常的简单的,同时也是非常容易判断一个继承是否是虚继承的,虽然这两个概念的定义是非常的简单明确的,但是在C++语言中虚继承作为一个比较生僻的但是又是绝对必转载 2015-03-16 11:23:25 · 547 阅读 · 0 评论 -
c++中static的用法总结
不管是C,C++,还是JAVA,它们中都包含static。当然这其中的用法及作用也是不一样的。下面主要介绍static在C++中的用法:要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用static修饰的变量,都是auto的,因为它是默认的,就象short和long总是默认为int一样;我们通常声明一个变量:i转载 2015-03-06 11:04:02 · 493 阅读 · 0 评论 -
const的常见用法
const用法主要是防止定义的对象再次被修改,定义对象变量时要初始化变量 下面我就介绍一下几种常见的用法1.用于定义常量变量,这样这个变量在后面就不可以再被修改 const int Val = 10; //Val = 20; //错误,不可被修改 2. 保护传参时参数不被修改,如果使用引用传递参数或按地址传递参数给一个函数,在这个函数里这个参数的值若被修改,则转载 2015-03-06 11:11:40 · 496 阅读 · 0 评论 -
C/C++程序的编译过程
转自:http://www.ruanyifeng.com/blog/2014/11/compiler.htmlC/C++源码要运行,首先得转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c):#include int main(void){ fputs("Hello, world!\n", stdout); return 0;转载 2015-03-16 14:51:18 · 841 阅读 · 0 评论 -
C/C++中几种经典的垃圾回收算法
1.引用计数算法 引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量,当有一个指针指向自己时计数值加1;当删除一个指向自己的指针时,计数值减1,如果计数值减为0,说明已经不存在指向该对象的指针了,所以它可以被安全的销毁了。可以很直观的用下面的图表示: 引用计数算法的优点在于内存管理的开销分布于整个应用程序运行期间,非常转载 2015-03-16 16:42:29 · 593 阅读 · 0 评论 -
回文字符序列
描述给定字符串,求它的回文子序列个数。回文子序列反转字符顺序后仍然与原序列相同。例如字符串aba中,回文子序列为"a", "a", "aa", "b", "aba",共5个。内容相同位置不同的子序列算不同的子序列。输入第一行一个整数T,表示数据组数。之后是T组数据,每组数据为一行字符串。输出对于每组数据输出一行,格式为"Case #X: Y",X代表数据编号(从1开始),Y为答原创 2015-04-19 15:02:33 · 1408 阅读 · 0 评论 -
inline函数必须在头文件中定义吗?
前不久在写代码的时候遇到一个link错误,代码的原型如下所示,基本就是定义了一个基类和派生类,在派生类的一个成员函数中用到了基类定义的一个内联函数。[cpp] view plaincopyprint?// base.h class Base { protected: void fun(); }; // base.cpp #in转载 2015-05-14 14:45:18 · 8876 阅读 · 0 评论 -
内存泄漏检查工具valgrind使用方法
调试内存问题的工具和技术动态内存分配看起来似乎非常简单:您可以根据需要分配内存 —— 使用 malloc() 或其变种 —— 并在不需要时释放这些内存。实际上,内存管理的问题是软件中最为常见的 bug,因为通常在程序启动时这些问题并不明显。例如,程序中的内存泄漏可能开始并不为人注意,直到经过多天甚至几个月的运行才会被发现。接下来的几节将简要介绍如何使用流行的调试器 Valgrind 来发现并调转载 2015-05-21 10:07:40 · 864 阅读 · 0 评论 -
strftime和strptime使用(时间日期的格式控制函数)
strftime和strptime使用整理自《linux程序设计》这两个函数都是时间日期的格式控制函数,在功能上看起来正好相反。strftime将一个tm结构格式化为一个字符串,strptime则是将一个字符串格式化为一个tm结构。strftime函数原型:size_t strftime(char *s,size_t maxsize,char *format,const转载 2014-12-08 13:48:25 · 3451 阅读 · 0 评论 -
memset函数
memset接口形式:void * memset ( void * ptr, int value, size_t num );用给定的值value填充ptr所指的内存块。Sets the first num bytes of the block of memory pointed byptr to the specified value (interpreted as原创 2014-12-08 13:24:41 · 841 阅读 · 0 评论 -
关于STL中的map和hash_map
转自:http://blog.chinaunix.net/uid-26548237-id-3800125.html 在网上看到有关STL中hash_map的文章,以及一些其他关于STL map和hash_map的资料,总结笔记如下: 1、STL的map底层是用红黑树实现的,查找时间复杂度是log(n); 2、STL的hash_map底层是用hash表存储的,查询时转载 2015-01-31 10:34:34 · 513 阅读 · 0 评论 -
[学习笔记] C++ 初体验
UNIX 系统中,在编写c++程序时,可以通过命令$ echo $? 来查看程序返回值,当返回0时,表示正常结束;返回大于0的数时,表示出现了错误。具体错误类型与数字有关。原创 2014-01-23 19:48:04 · 890 阅读 · 0 评论 -
c++时间格式转换--strftime和strptime使用
strftime和strptime使用整理自《linux程序设计》这两个函数都是时间日期的格式控制函数,在功能上看起来正好相反。strftime将一个tm结构格式化为一个字符串,strptime则是将一个字符串格式化为一个tm结构。strftime函数原型:size_t strftime(char *s,size_t maxsize,char *format,const转载 2014-09-05 10:39:24 · 5147 阅读 · 0 评论 -
default argument given of parameter 的问题
default argument given of parameter 的问题原创 2014-09-19 09:31:40 · 3529 阅读 · 0 评论 -
[effictive c++]条款05 了解c++默默编写并调用哪些函数
c++的编译器是非常智能的!当你声明一个空类empty class,如果你的代码有用到这个empty class时,编译器会默默的为你编写一些基本的函数。那么究竟编译器自己添加的函数都有哪些呢?构造函数,析构函数,一个copy构造函数和一个copy assignment操作符。举个例子来说明一下,如果你写下:class empty{};就好像你写下这样的代码:class Empty{原创 2014-09-22 10:29:49 · 1003 阅读 · 0 评论 -
C++常成员函数 - const 关键字
住C++常成员函数- const 关键字一、常成员函数详解声明:类型标志符>函数名(参数表)const;说明:(1)const是函数类型的一部分,在实现部分也要带该关键字。(2)const关键字可以用于对重载函数的区分。(3)常成员函数不能更新类的成员变量,也不能调用该类中没有用const修饰的成员函数,只能调用常成员函数。A、通过例子来理解cons转载 2014-09-03 10:25:42 · 999 阅读 · 0 评论 -
[effictive c++] 条款04 确定对象被使用前已被初始化
条款04 确定对象被使用前已被初始化原创 2014-09-17 14:46:26 · 1086 阅读 · 0 评论 -
c++ stringstream 的clear()清空误区
在用c++写程序时,经常回需要将int or double 等类型转换成string。对于这个操作,我常使用的是stringstream。比如int a = 10;stringstream s1;s1 << a;string a_str = a.str(); 利用这个方法就可以将int类型a的值转换为string类型(同理,可以转换double,long等类型)。如果你想要原创 2014-09-28 17:20:06 · 14047 阅读 · 2 评论 -
jsoncpp 不能处理long类型数据
jsoncpp,是一个c++的解析和生成json的开源工具。如果你的c++程序需要解析或生成json,它会使这个过程变得很简单!但是,今天在用jsoncpp进行生成json的时候报了错误,很显然这不是我程序的问题。Test.cpp: In function ‘std::string createJsonData()’:Test.cpp:41: error: conversion from原创 2014-09-28 17:32:21 · 14179 阅读 · 0 评论 -
[leetcode]Triangle
问题描述:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2], [3,4原创 2014-11-11 21:04:15 · 738 阅读 · 0 评论 -
[leetcode]3Sum
问题描述:Given an array S of n integers, are there elementsa, b, c in S such that a + b +c = 0? Find all unique triplets in the array which gives the sum of zero.Note:Elements in a triplet原创 2014-11-15 22:01:00 · 1000 阅读 · 0 评论 -
最常用的C++序列化方案综述
导读1. 什么是序列化?2. 为什么要序列化?好处在哪里?3. C++对象序列化的四种方法4. 最常用的两种序列化方案使用心得正文1. 什么是序列化?程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被称为“序列化”(Serializa转载 2014-11-19 16:43:04 · 758 阅读 · 0 评论 -
C++对象序列化方案介绍
Introduction介绍 序列化是将对象状态信息转换为可存储或传输的过程,序列化时,对象会将当前状态写入到临时或持久性的存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。对象序列化反序列化通常用于: 将对象存储于硬盘上 在网络上传送对象的字节序列 更多介绍内容 常见C++序列化方案Boost.Serializati转载 2014-11-19 16:29:32 · 1442 阅读 · 0 评论 -
c++循环创建多级目录
今天项目中遇到了创建文件的需求,发现C++创建文件并不像java那样简单,所以在网上找了找相关的内容。记录下来,方便以后用到。c++中创建文件需要调用系统接口,所以不同的系统会有不同的实现方式。在windows下可以调用文件中的_mkdir(char* a);而linux下则是下的int mkdir(const char *path, mode_t mode)方法。#include "原创 2014-11-27 16:36:27 · 1072 阅读 · 0 评论 -
[leetcode]Palindrome Number
问题描述:Determine whether an integer is a palindrome. Do this without extra space.基本思路:考虑到回文的特点,根据给定数字获得与给定数字低位高位反序的数字。如果是回文数,则两数想等;否则不等。(即使反序数字溢出,也可的到正确结果)代码:bool isPalindrome(int x) { //原创 2014-12-04 18:02:28 · 740 阅读 · 0 评论 -
[leetcode]Permutations
问题描述:Given a collection of numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3], [2,3,1],[3,1,2], and [3,2,1].基本思想:原创 2014-12-21 21:51:50 · 619 阅读 · 0 评论 -
c++中全局变量与头文件
最近碰到一个问题,想要在主文件中定义全局变量,其它文件也能够使用。通过查资料,找到了两种方法:一是在主文件的cpp中定义变量,在头文件.h中通过extern声明一下,要使用全局变量的其它cpp文件只要包含这个头文件就ok了;二是通过条件编译。其中一是比较常用的方法,但是有一点一定要注意,就是头文件中只是声明,定义是在cpp文件中,千万不要弄反了! 下面之间看实现。。。。。。转载 2014-12-22 15:53:17 · 949 阅读 · 0 评论 -
C++ STL priority_queue
priority_queue 对于基本类型的使用方法相对简单。他的模板声明带有三个参数,priority_queueType 为数据类型, Container 为保存数据的容器,Functional 为元素比较方式。Container 必须是用数组实现的容器,比如 vector, deque 但不能用 list.STL里面容器默认用的是 vector. 比较方式默认用 operator转载 2015-07-01 22:10:57 · 469 阅读 · 0 评论