- 博客(38)
- 收藏
- 关注
原创 c++11 thread 初始化
class background_task{public: int id; int value; background_task(int _id, int _value):id(_id),value(_value){ output(); std::cout << "initialize.\n"; }...
2018-06-06 09:08:26
2273
原创 整数相乘容易出错实例
////* 1、测试 两个 int32 整数相乘,结果放保存在uint64整数,测试输出结果是否正确 * 2、 * 3、 * * date: 2018-05-25 */#include <iostream>#include <fstream>#include <vector>#include &l...
2018-05-24 08:46:46
406
原创 (转)Linux C++程序进行性能分析工具gprof使用入门
转自https://blog.youkuaiyun.com/garfier/article/details/12489953# 性能分析工具软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键。这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是要重点测试版本的性能表现和稳定性的。对于软件测试过程中发现的性能问题,如...
2018-04-12 19:35:40
230
原创 __gnu_parallel::sort()对空间是否有要求
目的:在使用__gnu_parallel::sort()时,发现改方法对空间好像有要求,所以测试__gnu_parallel::sort()的空间需求。方法: 在4G内存的机器上运行一个大的数据,然后调用__gnu_parallel::sort()排序,看是否能正常运行。结果:该方法确实需要两倍的排序空间#include <iostream>#include ...
2018-04-04 15:03:27
353
原创 delete 对象后调用该对象的方法程序不报错
delete 一个对象后,在执行该对象的方法,并不会报错,而返回一个不确定的值。 /*测试 delete MyVector 对象后,执行 is_eof() 函数是否显示已经结束*/#include "vector.h"using uint32 = unsigned int;int main(){ MyVector<uint32>...
2018-03-27 10:30:56
344
原创 ubuntu拼音设置
Ubuntu16.04 已经自带pinyin输入法,直接设置即可使用,设置方法: 1、system setting -》language support -> keyboard input method system 选择 fcitx。2、system setting -》 text entry -》,勾选 show current input source in the ...
2018-03-25 08:32:41
1264
原创 new 数组越界 系统不会报错
/** \brief 测试 数组越界 , 系统是否有报错 * 测试结果: 不报错 * * \param * \param * \return * */#include <iostream>using std::cout ;int main(){ int * ary = new int [100...
2018-03-21 15:00:18
388
原创 delete 数组后 指针是否为null
/** \brief 测试 delete 数组指针后,数组指针是否为 nullptr * 测试结果: delete 数组指针后, 数组指针不为 nullptr * * \param * \param * \return * */#include <iostream>using std::cout ;int ...
2018-03-21 14:54:08
913
2
原创 类的函数模班
#include <iostream>class UtilityTool{public: template< typename alphabet_type> static void method1(){ std::cout << __FUNCTION__ << ": sizeof(alp...
2018-03-08 14:17:10
94
原创 ubuntu 16.04 codeblocks 配置 openmp
( 转载:http://www.voidcn.com/article/p-wwyflsmx-bab.html ) 添加 openmp 编译选项 Setings-->Compiler-->Global compiler settings-->Compiler settings --> Compiler Flags 勾选 Enable the Ope...
2018-03-08 09:34:48
709
原创 Ubuntu 16.04 Linux系统内核升级方法(转)
转载地址:http://blog.youkuaiyun.com/csdn_duomaomao/article/details/77668946一、查看系统及内核版本命令#查看发布版本号cat /etc/issuelsb_release -a#查看内核版本号uname -sruname -a二、升级内核方法#到 Ubuntu网站http://kernel.ubuntu.com/~kernel-ppa/main...
2018-03-03 09:59:14
647
原创 编程错误总结
codeBlocks 中,sizeof() 函数统计错误,需要使用#pragma pack(push, 1)和#pragma pack(pop) 才能统计正确,__attribute__((packed));不正确#if _MSC_VER#pragma pack(push, 1)#endiftemplate<typename T1, typename T2>s...
2018-02-08 10:30:45
245
原创 错误示例:字节对齐
#include<vector>#include<iostream>#include<stdio.h>struct student { char c; int age;}__attribute__((packed));//win32 系统中 codeblock 运行结果:为8,char和int换位置后结果为:5 ...
2018-02-05 22:51:46
258
原创 __attribute__((packed))详解
转自 http://blog.youkuaiyun.com/primeprime/article/details/50646469 1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不...
2018-02-05 22:20:26
270
原创 错误示例:包引入顺序
#include<vector>#include<iostream>#include<stdio.h>//如果tuple.h在common.h前面,程序会报错,如果放在后面则正常。//说明包引入有先后顺序,使用时要注意#include "tuple.h"#include "common.h"int main(){ ...
2018-02-05 21:51:34
336
原创 文件读写代码
#include <iostream>#include <fstream>#include <string>#include <sstream>using std::ifstream;using std::ofstream;using std::string;using std::cout;/* run th...
2018-02-05 14:52:52
238
原创 C++统计代码运行时间计时器(转)
转自http://blog.youkuaiyun.com/ap1005834/article/details/53419647 一、前言 这里记下从网上找到的一些自己比较常用的C++计时代码 二、Linux下精确至毫秒 #include <sys/time.h> #include <iostream> #incl...
2018-02-05 11:59:53
1278
原创 右值引用与转移语义
转载自《https://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/》新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它...
2018-01-26 14:52:57
133
原创 const 引用
#include <iostream>using std::cout;using std::endl;int main(){int ival = 0;const int ival3 = 1;int * const & ref = &ival;// int * & ref2 = &ival; //错误,因为 &a...
2018-01-26 11:52:55
91
原创 Lvalues and Rvalues
转自http://www.cnblogs.com/areliang/archive/2011/11/16/2251480.html 今天看C++模板的资料,里面说到lvalue,rvalue的问题,这个问题以前也看到过,也查过相关资料,但是没有考虑得很深,只知道rvalue不能取地址,不能赋值等等一些规则。今天则突然有了更深层次的理解(也可以说是顿悟,耗时不过几秒钟),记录下来。...
2018-01-26 10:54:57
329
原创 vitual 函数
虚函数:通过基类对象指针指向派生类对象,或通过基类对象引用来引用派生类对象[code="c++"]#include #include using std::cout;using std::endl;using std::cin;using std::string;class ex0{ public: virtual string show(){...
2018-01-24 10:48:36
350
原创 const reference 关键字 示例 代码
[code="c++"]#include using std::cout;using std::endl;int main(){ int i = 5; const int ic =10; const int *pic = &i;//从右往左定义“pic 是一个指向int类型的、被定义成const对象的指针” i = i+1; ...
2018-01-21 10:03:02
275
原创 类模板 示例代码
[code="c++"]#ifndef ARRAY_CLASS#define ARRAY_CLASS#include #include //数组类模板template class Array{public: Array(int sz = 50); //构造函数 Array(const Array& A); //拷贝构造函数 ~Array(vo...
2018-01-20 16:40:40
239
原创 析构函数显式调用
[code="c++"]#include #include using namespace std;class student{public: student() { cout
2018-01-20 16:30:31
262
原创 C++ 拷贝构造函数和赋值运算符(转)
本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数、什么情况下调用赋值运算符。最后,简单的分析了下深拷贝和浅拷贝的问题。拷贝构造函数和赋值运算符在默认情况下(用户没有定义,但是也没有显式的删除),编译器会自动的隐式生成一个拷贝构造函数和赋值运算符。但用户可以使用delete来指定不生成拷贝构造函数和赋值运算符,这样的对象就不能通过值传递,也不能进行赋值运算。...
2018-01-19 11:29:02
101
原创 拷贝构造函数示例(重要)
[code="c++"]#include using namespace std;class A{public: A(int a = 1, int b = 2) //带默认形参值的构造函数 { x = a; y = b; } A(A& obj) //拷贝构造函数 { x = obj.x; y = obj.y; co...
2018-01-18 21:02:27
380
原创 默认参数的函数
[list][*]函数的缺省参数必须从右向左依次定义,即在模型形式参数的右边不能有缺省的形式参数比如:int fun(int a = 0, int b, int c = 0)[/list][code="c++"]#include//using namespace std; int distance(int x1,int y1,int x2=3,int y2=4);...
2018-01-18 14:49:34
122
原创 动态对象数组创建
[code="c++"]// 动态构建对象特点:/**** 1、在程序运行过程中创建和释放的变量或对象 位堆对象,分别用new 和 delete 运算符来完成。 2、堆动态对象为生存期可控对象,可以随时delete 释放 3、动态申请对象数组,该对象一定要有默认构造函数 或 构造函数最左形式参数一定要有默认值 ***/ #include using namespac...
2018-01-18 14:26:29
2941
原创 默认构造函数 与 默认形参构造函数
[list][*]带默认形参的构造函数与无参数的默认构造函数等价[*]在多个默认形参的构造函数中,第一个形式参数有默认值,编译器就认为是默认构造函数[/list][code="c++"]#include using namespace std;class A { public: A(){x=0;y=0;}//如果最左边有默认形参,则认为构造函数是默认构...
2018-01-18 14:02:07
1998
原创 符号重载
[code="c++"]/** @file list3201.cpp *//** Listing 32-1. Mystery Program */#include #include struct point{ point() : x_(0.0), y_(0.0) { std::cout
2018-01-18 09:33:25
388
原创 static 例子
[code="java"]#includeclass testStatic{ static int a,b; int c; public: testStatic( int _c):c(_c){ } static void output(testStatic & ts); int get();}; int testStatic::a = 1...
2018-01-17 09:16:14
197
原创 const 关键字总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码...
2018-01-16 11:35:43
104
原创 指针的引用
[code="java"]#include//void swap(const int *&p1, const int *& p2) // int 之前加const会导致swap函数错误,const不能修饰引用,引用不是常量 void swap( int *&p1, int *& p2) //此处函数的形参p1, p2都是引用{// int *p;// *p=*p1;...
2018-01-16 11:35:30
90
原创 模板的特化
[code="java"]#include #include //1. 这里我们先声明了一个通用类型的模板类。这里要有类型参数必须包含hashCode()方法。 //否则,该类型在编译期实例化时将会导致编译失败。 template class CalcHashClass { //该类为标准模板类(等同于多态中的接口) ...
2018-01-16 10:34:06
100
原创 非类型模板参数
[code="java"]#include#include#includetemplateclass MyContainer { public: MyContainer(){ std::cout
2018-01-16 10:24:31
121
原创 缺省模板实参
[code="java"]#include#include#include//1. 第二个类型参数的缺省值是vectortemplateclass MyClass { public: T2 data; MyClass() { std::cout
2018-01-16 09:46:10
391
原创 c++ 模板类特化
[code="c++"]#include//1. 标准模板类。 template class MyClass { public: MyClass(){ std::cout
2018-01-15 16:44:20
565
原创 C++中的static关键字的总结(转)
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include <iostre...
2018-01-15 14:27:45
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人