gigglesun的专栏

Cherish every day,Enjoy every day

C++智能指针使用须知

我在《C++ 智能指针(shared_ptr/weak_ptr)源码分析》已经介绍了智能指针的一些使用注意点,本文在此基础上,基于C++11中的语法特性,介绍一些智能指针的使用须知。 std::unique_ptr 如果不需要共享,同时需要防止内存泄漏, std::unique_ptr是替...

2019-04-30 23:43:44

阅读数 17

评论数 0

When to use checkbox, when to use radio button

做UI或者GUI界面开发的人对checkbox和radio button都非常熟悉,本文简要介绍二者的区别和各自适用的使用场景。 参考文章:https://www.justinmind.com/blog/checkboxes-or-radio-buttons-let-the-ui-design-...

2019-03-30 11:35:45

阅读数 303

评论数 0

Tutorial: When to Write Which Special Member(编写C++特殊成员的指导原则)

C++中的特殊成员,即编译器可能会自动生成的成员函数或操作符,即默认构造函数、析构函数、拷贝构造函数、移动构造函数,拷贝赋值操作符,移动赋值操作符 当给人解释这些特殊成员的使用规则以及什么时候需要自己手动编写其中的某个时,人们总会提起下面的这幅图。但是,我不认为这个图是特别有用的。 它覆盖了所...

2019-03-21 22:15:45

阅读数 35

评论数 0

catch2:一个好用的C++单元测试框架

文章目录为什么需要catch简单易用命令行选项SectionsBDD-styleAssertion MacrosFloating point comparisonsExceptionsMatchersString matchersVector matchersFloating point matc...

2019-02-24 23:17:08

阅读数 993

评论数 0

Undefining the C++ Pre-processor(取消C++中的预处理器)

取消C++中的预处理器 There are only two kinds of languages: the ones people complain about and the ones nobody uses (世界上只有两类编程语言:一类是被人们抱怨的,一类是没人使用的) — Bja...

2019-02-20 13:59:48

阅读数 313

评论数 0

NVIDIA CUDA nbody problem源码分析

N体问题(n-body problem)是一个非常著名物理问题,大刘的《三体》的开篇中就有一篇以三个太阳(三体)为背景展开过。具体的,是指已知N个物体的初始位置、速度和质量,在经典力学情况下它们的后续运动情形,包括预测它们的轨迹等等。目前N&...

2019-02-02 22:44:16

阅读数 346

评论数 0

C++对象计数

有时简单的事情看起来非常简单,但是他们却是非常微妙的。例如,你有一个Widget类,你想知道一共在运行时一共创建了多少个Widget对象。一个简单可行的方法是在Widget内部创建一个static counter,当对象创建时增加计数器的值,当对象销毁时减少计数器的值。同时,也要创建一个stati...

2019-01-26 12:25:33

阅读数 391

评论数 0

NVIDIA CUDA原理和基础知识

为什么使用GPU 为什么现在使用GPU(Graphics Processing Unit)编程越来越多,主要是因为GPU相对于CPU的运算速度,内存带宽均有较大的优势,下面是摘自《CUDA C PROGRAMMING GUIDE》中的图片: 浮点数运算速度: 内存带宽: GPU为什...

2019-01-21 17:45:08

阅读数 260

评论数 0

记一次解决ubuntu18.04无法进入图形用户界面(GUI)的过程

最近尝试使用一个比较好用的Markdown软件vnote, 由于其release版本貌似托管在aws上,国内下载非常不方便. 虽然提供了百度网盘的下载地址,但是在Linux系统上又无法使用百度网盘客户端,于是尝试使用代码构建appimage, 发现代码目录下有一个.travis_linux.sh的...

2019-01-05 19:32:43

阅读数 3730

评论数 1

CUDA Hello World 程序

@[TOC]CUDA Hello world 程序 CUDA(Compute Unified Device Architecture)是NVIDIA(英伟达)公司基于其生产的图形处理器GPU(Graphics Processing Unit)开发的一个并行计算平台和编程模型。 基于CPU编程,...

2018-12-26 11:20:08

阅读数 135

评论数 0

Move Semantics and Perfect Forwarding in C++11

原文链接:Move Semantics and Perfect Forwarding in C++11

2018-10-13 22:14:44

阅读数 48

评论数 0

C++ 11中的一些典型概念与分析

相比传统的C++98与C++03, C++11中新提出了很多新的概念,本文根据C++布道师Scott Meyers 在Youtube上的培训视频展开,介绍C++11中的一些典型概念,并进行分析。 1. 左值(lvalue)与右值(rvalue) C++11之前已经有左值与右值的概念,但由于其只...

2018-10-03 17:58:33

阅读数 158

评论数 0

How to split a string in C++

Java has String.split(), Python has string.split(), Perl has split. There is no simple string-splitting method in C++, but there are plenty of ways o...

2018-02-22 11:38:09

阅读数 192

评论数 0

改进的point in polygon problem算法介绍

背景知识 点和多边形的位置问题(point-in-polygon (PIP) problem), 一般指的是给定二维平面上的一个点Q以及一个多边形P,怎样判断点Q是位于多边形P内部还是外部。该算法在计算机图形学,地理空间信息学等方面有广泛的应用。目前有两种通用的算法实现: Ray casting...

2018-01-20 17:28:24

阅读数 1296

评论数 0

类模板以及其中的traits技术和type classification技术

1. 类模板相关概念 类模板用来描述一系列具有相同行为的类。一般有如下的形式:   template<class T, class U> class A { public: A(){ cout<<&a...

2017-07-31 14:22:39

阅读数 276

评论数 0

QT中的d-pointer模式分析

类中的数据有多种组织方式,通常存放在类本身中,有时,为了方便管理,也会将数据部分分离出来,放在另外一个结构体或类中。如下图所示:

2017-05-31 23:53:22

阅读数 658

评论数 0

Using astyle to format code

As you know, we had our coding style which everyone should follow, and also we had the cpplint tool to check if we had followed the rule, but we do n...

2017-03-05 20:51:30

阅读数 825

评论数 0

leetcode UTF-8 Validation

UTF-8 Validation A character in UTF8 can be from 1 to 4 bytes long, subjected to the following rules: For 1-byte character, the first bit is ...

2017-02-28 22:56:21

阅读数 311

评论数 0

LeetCode Game of Life 解题

1. 非原地的解答,通过四周补0可以很自然的按照规则写出下一代的状态 Game of Life According to the Wikipedia's article: "The Game of Life, also known simply as Life, i...

2017-01-24 00:13:58

阅读数 281

评论数 0

感兴趣的十款Google开源软件

浏览了下在OSChina上的Google开源软件列表, 摘选一些感兴趣的如下

2016-06-05 23:22:31

阅读数 1951

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭