文章分类 - 03C&C++
摘要:参考 1.从C++到C++/CLI 2.C#调用C++ (使用C++/CLI)
阅读全文
摘要:#include <iostream> #include <typeinfo> #include <string> #include <functional> /* C++ 11 bind绑定器=》返回的结果还是一个函数对象 */ void hello(std::string str) { std:
阅读全文
摘要:举例实现特定function功能 #include<iostream> /* function函数对象类型的实现原理 */ void hello(std::string str) { std::cout << str << std::endl; } int sum(int a, int b) { r
阅读全文
摘要:模板简单基础知识 #include<iostream> template<typename T> bool compare(T a, T b) { std::cout << "bool compare(T a, T b)" << std::endl; return a > b; } template
阅读全文
摘要:function简单使用 #include <iostream> #include <vector> #include <functional>//使用function函数对象类型 #include <algorithm> /* C+11 提供的绑定器和函数对象 bind function C++
阅读全文
摘要:#include <iostream> #include <vector> #include <functional> #include <algorithm> /* 绑定器和函数对象operator() 1.C++ STL中绑定器 bind1st:operator()的第一个形参变量绑定成一个确定
阅读全文
摘要:#include <iostream> #include <vector> #include <functional> #include <algorithm> /* 绑定器和函数对象operator() 1.C++ STL中绑定器 bind1st:operator()的第一个形参变量绑定成一个确定
阅读全文
摘要:问题的引出 #include <iostream> #include <memory> #include <thread> using namespace std; /* 多线程访问共享对象的线程安全问题 */ class A { public: A() { cout << "A()" << end
阅读全文
摘要:#include <iostream> #include <memory> #include <functional> //#include <cstdio> /* 智能指针的删除器 delete 智能指针:能够保证资源绝对的释放 delete ptr 但向开辟的的数组空间,打开文件资源不能用智能指
阅读全文
摘要:在 C++ 中实现线程的安全退出,核心是让线程能够“优雅地”结束执行,避免强制终止(如 pthread_cancel 或 terminate)导致的资源泄漏或数据不一致。以下是几种常用的线程安全退出方案: 1. 标志位退出法(最常用) 通过一个共享的原子变量(或加锁保护的变量)作为“退出标志”,线程
阅读全文
摘要:好的,这是一个非常基础且重要的问题!C++中指针大小是4字节或8位的原因直接关联到计算机系统的核心架构。 🖥️ 根本原因:CPU的寻址能力 指针大小由CPU的地址总线宽度决定,因为它存储的是内存地址。 32位系统(4字节指针) 地址总线:32位 可寻址空间:2³² = 4,294,967,296
阅读全文
摘要:以下是使用C++编写的计算三角形面积的函数,使用三个点的坐标作为参数: 向量叉积公式 #include <cmath> double calculateTriangleArea(double x1, double y1, double x2, double y2, double x3, double
阅读全文
摘要:详细总结C++中各种数据类型的内存大小。需要注意的是,这些大小是平台相关和编译器相关的,但遵循一些通用规则。 1. 基本数据类型大小(典型值) 整数类型 类型 32位系统 64位系统 说明 bool 1字节 1字节 通常1字节,但大小由实现定义 char 1字节 1字节 保证至少1字节 signed
阅读全文
摘要:场景:高并发下的锁竞争之痛 在我参与的一个高频交易模拟系统中,我们遇到了一个典型的性能瓶颈。该系统中有一个核心组件——一个多生产者、多消费者模式的任务队列。各个网络I/O线程接收到数据后,会将计算任务压入这个队列,而一群工作线程则不断地从队列中取出任务进行处理。 最初,我们使用std::mutex来
阅读全文
摘要:在C++中,内存主要分为以下几个区域: 内存区域分类 栈 (Stack) 堆 (Heap) 静态存储区/全局存储区 (Static/Global Storage) 常量存储区 (Constant Storage) 自由存储区 (Free Store) - 现代C++中常与堆合并考虑 线程局部存储 (
阅读全文
摘要:尽管智能指针很强大,但以下几种情况依然会导致内存泄漏: 1. 循环引用(Cyclic Reference) 这是 std::shared_ptr 最经典的陷阱。 #include <iostream> #include <memory> struct B; struct A { A() { std:
阅读全文
摘要:引用(左值引用) #include <iostream> #include <typeinfo> /* C++的引用 引用的和指针的区别? 1.左值引用和右值引用 2.引用的实例 引用是一种更安全的指针 1.引用是必须初始化的,指针可以不初始化 2.引用只有一级引用,没有多级引用;指针可以有一级指针
阅读全文
摘要:const和一级指针的结合应用 #include <iostream> #include <typeinfo> /* const修饰的量叫常量 普通变量的区别是什么?C++有两点区别?1.编译方式不同 2.不能作为左值了 const修饰的量常出现的错误是: 1.常量不能再作为左值《=直接修改常量的值
阅读全文
摘要:C中const示例 创建一个main.c文件如下 #include <stdio.h> /* C语言中 const修饰的量,可以不用初始化 不叫常量,叫做常变量 C中const就是当作变量来编译生成指令的 */ int main() { const int a;//C语言中常变量可以不给初值 /*
阅读全文
浙公网安备 33010602011771号