首页
学习
活动
专区
工具
TVP
发布

我的技术专栏

专栏作者
87
文章
102935
阅读量
53
订阅数
C++11 并发编程基础(一):并发、并行与C++多线程
C++11标准在标准库中为多线程提供了组件,这意味着使用C++编写与平台无关的多线程程序成为可能,而C++程序的可移植性也得到了有力的保证。另外,并发编程可提高应用的性能,这对对性能锱铢必较的C++程序员来说是值得关注的。
Tencent JCoder
2022-05-06
9300
关于传值与传引用的讨论
对于用户自定义的类型来说,传引用一般要比传值高效。传引用不需要经过对象过程,在《Effective C++》中作者举了个例子:
Tencent JCoder
2022-05-06
7270
智能指针小分析
所谓资源就是,一旦用了它,将来必须还给系统。C++中内存资源的动态分配经由new与delete实现。问题在于,无论是有意无意,我们有时候总会忘记释放内存中的资源。例如delete语句出现在某个循环语句中,而我们的continue或者break却跳过了它的执行;或者是在程序中某个分支含有函数return语句,而delete操作放在return 语句之后;更加难以预料的事情是程序执行过程中发生了异常,导致我们的delete语句没有执行。总的来说,把资源回收交给用户并不是一种好做法。我们期望有一种机制,它帮助我们管理从系统获取而来的资源,当我们不再使用该资源时,该机制能自动帮我们回收,避免了内存泄漏问题。智能指针就是这样一种资源回收机制。
Tencent JCoder
2022-05-06
5400
GC基本算法及C++GC机制
垃圾收集器是一种动态存储分配器,它自动释放程序不再需要的已分配的块,这些块也称为垃圾。在程序员看来,垃圾就是不再被引用的对象。自动回收垃圾的过程则称为垃圾收集(garbage collection)。在一个支持垃圾收集的语言中,程序显式地申请内存,但从不需要显式的释放它们。垃圾收集器会定期识别垃圾块,并将垃圾块放回空闲链表中。显然,C语言的malloc包不是一个带GC功能的分配器,程序员显式 调用malloc分配内存,也需要显式调用free释放它。而像java、C#这些语言等则提供了垃圾收集器。这篇文章的内容为介绍一些常用的GC算法,同时简单提一下C++的GC机制。
Tencent JCoder
2022-05-06
5120
QT信号槽机制
信号槽是QT中用于对象间通信的一种机制,也是QT的核心机制。在GUI编程中,我们经常需要在改变一个组件的同时,通知另一个组件做出响应。例如:
Tencent JCoder
2022-05-06
7600
关注专栏作者,随时接收最新技术干货
Tencent JCoder
腾讯后台开发
C++11特性:decltype关键字
我们之前使用的typeid运算符来查询一个变量的类型,这种类型查询在运行时进行。RTTI机制为每一个类型产生一个type_info类型的数据,而typeid查询返回的变量相应type_info数据,通过name成员函数返回类型的名称。同时在C++11中typeid还提供了hash_code这个成员函数,用于返回类型的唯一哈希值。RTTI会导致运行时效率降低,且在泛型编程中,我们更需要的是编译时就要确定类型,RTTI并无法满足这样的要求。编译时类型推导的出现正是为了泛型编程,在非泛型编程中,我们的类型都是确定的,根本不需要再进行推导。
Tencent JCoder
2022-05-06
3140
C++11特性:auto关键字
本文的内容已经不新鲜了。关于auto,翻来覆去被人知道的都是这些东西,本文并没有提出新颖的auto用法。 本人原是痛恨博客一篇篇都是copy而来缺乏新意的探索,当然,本文不是copy而来,但发布这样一篇大家皆知的文章心里甚是惶恐。 本文对auto的内容加以整理,权当是自己的复习笔记了。
Tencent JCoder
2022-05-06
3590
【C++实现python字符串函数库】strip、lstrip、rstrip方法
这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' ')。
Tencent JCoder
2022-05-06
5550
【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith
这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值。startswith()函数判断文本的指定范围字符段是否以某个字符开始,endswith()函数判断文本是否以某个字符结束。默认的指定范围为整个字符串:
Tencent JCoder
2022-05-06
3750
【C++实现python字符串函数库】split()与rsplit()方法
本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数。这些C++函数在这里做单独的分析,最后我们将把这些函数放在命名空间中,真正作为一个函数库来使用。
Tencent JCoder
2022-05-06
5610
python 列表与元组的操作简介
列表是可变的(mutable)——可以改变列表的内容,这不同于字符串和元组,字符串和元组都是不可变的。接下来讨论一下列表所提供的方法。
Tencent JCoder
2022-05-06
6340
Python 序列通用操作介绍
Python包含6种内置的序列:列表、元组、字符串 、Unicode字符串、buffer对象、xrange对象。在序列中的每个元素都有自己的编号。列表与元组的区别在于,列表是可以修改,而组元不可修改。理论上几乎所有情况下元组都可以用列表来代替。有个例外是但元组作为字典的键时,在这种情况下,因为键不可修改,所以就不能使用列表。
Tencent JCoder
2022-05-06
5540
Python字符串基础一
在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀u
Tencent JCoder
2022-05-06
5220
【unity shaders】:Unity中的Shader及其基本框架
Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)。之后,我们便可以将材质赋予合适的renderer(渲染器)来进行渲染(输出)了。 所以说Shader并没有什么特别神奇的,它只是一段规定好输入(颜色,贴图等)和输出(渲染器能够读懂的点和颜色的对应关系)的程序。而Shader开发者要做的就是根据输入,进行计算变换,产生输出而已。
Tencent JCoder
2022-05-06
1.5K0
编译器角度看C++复制构造函数
关于复制构造函数的简单介绍,可以看我以前写过的一篇文章C++复制控制之复制构造函数该文章中介绍了复制构造函数的定义、调用时机、也对编译器合成的复制构造函数行为做了简单说明。本文因需要会涉及到上文的一些知识点,但还是推荐先阅读上文。
Tencent JCoder
2022-05-06
5580
C++ 合成默认构造函数的真相
  第一个误解来自于我学习C++的第一本书 《C++ Primer》,在书中392页:“只有当一个类没有定义构造函数时,编译器才会自动生成一个默认构造函数”。
Tencent JCoder
2022-05-06
7480
浅谈 GPU图形固定渲染管线
图形渲染管道被认为是实时图形渲染的核心,简称为管道。管道的主要功能是由给定的虚拟摄像机、三维物体、灯源、光照模型、纹理贴图或其他来产生或渲染一个二维图像。由此可见,渲染管线是实时渲染技术的底层工具。图像中物体的位置及形状是通过它们的几何描述、环境特征、以及该环境中虚拟摄像机的摆放位置来决定的。物体的外观受到了材质属性、灯源、贴图以及渲染模式(sharding modles)的影响。
Tencent JCoder
2022-05-06
2.2K0
C++内联函数
     在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数。内联函数作为编译器优化手段的一种技术,在降低运行时间上非常有用。我们将从:
Tencent JCoder
2022-05-06
5580
C++ 序列式容器之vector
  容器,顾名思义,是用来容放东西的场所。C++容器容放某种数据结构,以利于对数据的搜寻或排序或其他特殊目的。众所周知,常用的数据结构不外乎:数组array,  链表list,  树tree,  栈stack,  队列queue,  散列表hash table,  集合set、映射表map 等等。容器便是容纳这些数据结构的。这些数据结构分为序列式与关联式两种,故容器也分为序列式容器和关联式容器。
Tencent JCoder
2022-05-06
3030
二叉查找树 C++实现(含完整代码)
       一般二叉树的查找是通过遍历整棵二叉树实现,效率较低。二叉查找树是一种特殊的二叉树,可以提高查找的效率。二叉查找树又称为二叉排序树或二叉搜索树。
Tencent JCoder
2022-05-06
4830
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档