c++
文章平均质量分 70
froxy
从事嵌入式系统开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
float转换为整型过程中关于小数部分的处理
大多数编程语言在将float转换为整型时默认会截断小数部分而非四舍五入,如C/C++、Python和JavaScript等。要实现四舍五入,需显式调用round()等函数。不同语言对负数的截断规则可能不同,建议查阅具体文档。关键点:默认截断,需主动调用函数才能四舍五入。原创 2025-06-06 08:05:28 · 610 阅读 · 0 评论 -
C++中的CAS(Compare-And-Swap)解读
用于在多线程编程中实现无锁(lock-free)的线程安全操作。它的核心功能是:检查某个内存位置的值是否与预期值一致,若一致则更新为新值,否则不更新。线程1读取内存值为A,线程2将其改为B后又改回A。线程1的CAS操作误认为值未变,导致逻辑错误。可能在某些情况下虚假失败(如硬件架构限制),但性能更高,通常用在循环中重试。CAS(Compare-And-Swap)是一种。严格保证成功或失败,无虚假失败,但可能更耗资源。整个过程是原子性的,不会被其他线程中断。,每次修改递增版本号,确保值的唯一性。原创 2025-05-06 17:03:33 · 728 阅读 · 0 评论 -
原子操作的is_lock_free() 接口说明
表示该原子类型的操作直接通过硬件指令(如CAS指令)实现,无需内部使用互斥锁(mutex),因此效率更高且无阻塞风险。,则表示该类型可能需要内部加锁(如对复杂类型或某些平台不支持的无锁操作),此时原子操作可能涉及锁竞争和上下文切换。的结果选择不同的算法或数据结构(例如优先使用无锁实现的高性能路径)。这是并发编程中的一个关键信息,直接影响程序的性能和线程安全策略。在调试时输出原子类型的无锁状态,辅助分析并发性能。不同平台对原子类型的无锁支持可能不同(例如对。的支持),通过此接口可编写平台自适应的代码。原创 2025-05-06 16:26:04 · 637 阅读 · 0 评论 -
STL容器中不进行前置条件检查有可能导致不安全的操作
始终检查容器是否为空在调用front()back()pop_back()前使用empty()检查。避免未经验证的索引或迭代器使用at()替代operator[]进行越界检查。对关联容器使用find()检查键是否存在。注意迭代器失效规则修改容器后,重新获取迭代器。在循环中谨慎处理erase。优先使用 C++11 后的安全操作如emplace、基于范围的 for 循环。原创 2025-04-04 17:35:56 · 1477 阅读 · 0 评论 -
C++容器数据类型定义、测试用例
C++11 标准库提供了多种容器类型,每种容器定义了多个成员类型(如 、 等),用于与容器交互。以下详细说明各容器的数据类型定义、测试用例及注意事项。类型定义:测试用例:2. 类型定义:同 ,但迭代器为双向迭代器。测试用例:二、关联容器1. 类型定义:测试用例:三、无序容器1. 类型定义:测试用例:四、使用注意事项迭代器失效:类型差异:分配器类型:性能考量:C++11 新特性:使用 直接构造元素,避免拷贝。基于范围的 for 循环简化遍历:通过理解容器的数据类型定原创 2025-04-04 17:04:26 · 504 阅读 · 0 评论 -
std::reference_wrapper 和 std::function的详细介绍
两者结合使用可以构建灵活高效的抽象机制,例如在事件系统中用。性能关键场景慎用(相比虚函数有额外开销)不能替代智能指针(不管理生命周期)不能包装临时对象(悬挂引用风险)原创 2025-03-29 21:04:13 · 423 阅读 · 0 评论 -
unique_ptr的详细介绍
可以显著提高代码的。原创 2025-03-29 20:14:39 · 545 阅读 · 0 评论 -
shared_ptr和 weak_ptr的详细介绍
shared_ptr和 weak_ptr的详细介绍。原创 2025-03-29 20:08:01 · 504 阅读 · 0 评论 -
C++11 标准库 `find` 与 `find_if` 详解
find 与find_if使用测试原创 2025-03-24 20:58:38 · 2095 阅读 · 0 评论 -
文心快码 使用体验与介绍
百度快码体验原创 2025-03-23 12:00:57 · 1358 阅读 · 0 评论 -
C++11 引入了的新特性与实例说明
以上示例展示了 C++11 中一些重要的新特性,包括自动类型推导、范围for循环、Lambda 表达式、移动语义、智能指针、nullptr、多线程支持、和std::bindconstexpr以及std::array和std::tuple。这些特性极大地提高了 C++ 的现代化编程能力。原创 2025-03-21 21:31:35 · 594 阅读 · 0 评论 -
C++具名转型的功能和用途
转型操作符使用场景安全性运行时开销明确的类型转换编译时检查无多态类层次的安全向下转换运行时检查有const_cast修改 const/volatile 属性需人工保证无低级二进制重新解释 极不安全无。原创 2025-03-21 21:03:14 · 1059 阅读 · 0 评论 -
C++常用特性笔记
访问权限继承关系类的静态数据成员数据保护常类型常对象常成员常引用常数组常指针类的友元友元函数友元类多态性纯虚函数抽象类单例模式访问权限:原创 2017-10-28 22:48:36 · 330 阅读 · 0 评论
分享