程序员的故乡

 

随笔分类 -  c++

c++相关知识、技巧和思路
Thriving in a Crowded and Changing World: C++ 2006–2020 读后总结
摘要:C++在编程语言排行榜里基本上一直在前三,可以说是经久不衰。可能很多人没有意识到C++无处不在,因为大多数 C++ 程序是在基础层,藏在应用的背后,对用户来说是不可见的。C++通常不开发web 应用程序(Java、Ruby on Rails、PHP等在这个领域中更合适)。但是C++的经常出现在诸如开 阅读全文

posted @ 2024-10-08 17:22 程鑫 阅读(44) 评论(0) 推荐(0) 编辑

手撸一个C++迭代器
摘要:先撸一个简单版本 C++语言的特点就是少了一个符号都会造成非常不同的结果。以下代码有个很致命的错误,不知道能否一眼看出来。 // ranges_iterators.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include 阅读全文

posted @ 2024-07-30 20:40 程鑫 阅读(21) 评论(0) 推荐(0) 编辑

STL库的ranges
摘要:C++20的 阅读全文

posted @ 2024-06-01 22:45 程鑫 阅读(154) 评论(0) 推荐(0) 编辑

`static_cast` caution
摘要:static_cast caution It is likely to lead unexpected behavior and maybe dangerous to invoke static_cast on wrong C++ object. Below example demostrates 阅读全文

posted @ 2024-03-17 22:28 程鑫 阅读(20) 评论(0) 推荐(0) 编辑

一种高效且节约内存的聚合数据结构的实现
摘要:在特定的场景中,特殊定制数据结构能够得到更加好的性能且更节约内存。 阅读全文

posted @ 2023-09-10 21:56 程鑫 阅读(47) 评论(0) 推荐(0) 编辑

多线程与同步
摘要:多线程与同步 多线程并行执行能够大大提升程序运行效率,但是也要注意随之带来的线程间同步问题,避免竞态条件(“Race Condition”)引起的难以发现的bug。这篇总结一下线程的创建和销毁、等待和恢复、加锁和解锁、锁的类型以及在某些情况下可以替代锁的原子操作。 启动线程 创建std::threa 阅读全文

posted @ 2022-06-14 19:44 程鑫 阅读(84) 评论(0) 推荐(0) 编辑

C++编译器选择是否自动生成代码的背后逻辑
摘要:C++编译器选择是否自动生成代码的背后逻辑 编译器会为class和struct(实际上两者在C++中是一回事)自动生成构造函数、赋值操作符函数和析构函数。如果不是这样,那么开发者就必须自己写一些枯燥冗余的代码。然而编译器并不总是生成这些默认代码,当它觉得它无法生成正确的代码时,它就会拒绝生成默认代码 阅读全文

posted @ 2022-05-10 16:46 程鑫 阅读(68) 评论(0) 推荐(0) 编辑

用指针低三位存放额外信息的优化方法
摘要:在8字节对齐的情况下指针的低三位都是0,在某些情况下我们需要维持跟指针对应的额外信息,例如标志位,但是又不想为此创建一个结构体,那就可以利用指针的低三位来存储额外信息。 阅读全文

posted @ 2022-04-30 23:32 程鑫 阅读(261) 评论(0) 推荐(1) 编辑

导航

统计

点击右上角即可分享
微信分享提示