随笔分类 -  C++

摘要:1.初始化所有指针 2.指针的值-》地址;指针所指对象的值-》值 3.&:=右边是取地址符,左边是引用符; 4.引用就是对目标变量名起了个别名;引用的声明方法:类型标识符&引用名=目标变量名;对引用的操作与对变量直接操作完全一样。 5.迭代器有类似指针的作用,begin,end,都指首尾地址; 阅读全文
posted @ 2025-01-16 01:05 aisuanfa 阅读(3) 评论(0) 推荐(0) 编辑
摘要:1.vector不确定元素个数,可以往里添加; 2.数组确定个数; vector 和数组(array)是两种常用的数据结构,它们在 C++ 中有着不同的特点和用途。以下是它们的主要区别: 1. 定义与大小 数组: 在定义时需要指定大小,大小是固定的。 一旦定义,数组的大小不能改变。 例如:int a 阅读全文
posted @ 2025-01-16 01:03 aisuanfa 阅读(65) 评论(0) 推荐(0) 编辑
摘要:int main(int argc,char *argv[]) 该函数中int argc和argv[]两个参数的理解 说明:argc命令行总的参数的个数,即argv中元素的格式。 argv[ ]: 字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一个参数; argv[0]:指向程序的 阅读全文
posted @ 2025-01-16 01:00 aisuanfa 阅读(11) 评论(0) 推荐(0) 编辑
摘要:在C++中,可以通过使用局部变量来尽量减少对内存的访问次数,将数据加载到寄存器中进行处理。以下是一个简单示例,展示了如何实现这一过程。 示例代码 #include <iostream> #include <vector> void process_data(std::vector<int>& dat 阅读全文
posted @ 2025-01-10 14:30 aisuanfa 阅读(8) 评论(0) 推荐(0) 编辑
摘要:局部变量并不一定存储在寄存器中。局部变量通常存储在栈上,但编译器可以根据优化级别和具体情况决定是否将某些局部变量放入寄存器中。以下是一些详细信息: 1. 局部变量存储位置 栈:局部变量通常在函数调用时分配在栈上。栈是一个后进先出(LIFO)的数据结构,用于存储函数的局部变量、返回地址以及其他函数调用 阅读全文
posted @ 2025-01-10 14:27 aisuanfa 阅读(13) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中使用 SIMD 指令进行掩码操作可以通过使用 SIMD 指令集(如 SSE、AVX 等)来实现。掩码操作通常用于条件处理,例如在某些条件下选择性地处理数据。 以下是一个使用 SSE 指令进行掩码操作的示例,以展示如何在 SIMD 操作中实现条件选择。 示例:使用掩码进行条件选择 我们将 阅读全文
posted @ 2025-01-10 14:21 aisuanfa 阅读(28) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中使用预取指令可以帮助减少缓存未命中的延迟,从而提高程序性能。以下是如何在代码中实现预取的详细步骤和示例。 1. 理解预取指令 预取指令允许 CPU 提前加载数据到缓存中,从而在需要时可以更快地访问。这在处理大量数据时特别有用。例如,SSE2 提供了 _mm_prefetch 指令。 2 阅读全文
posted @ 2025-01-10 14:17 aisuanfa 阅读(72) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中使用 SIMD 操作(例如 SSE 指令)可以通过以下步骤实现。下面是一个使用 SSE2 指令的示例,展示了如何进行向量加法。 1. 包含必要的头文件 首先,需要包含 SSE 指令的头文件。 #include <emmintrin.h> // SSE2 #include <iostre 阅读全文
posted @ 2025-01-10 14:12 aisuanfa 阅读(36) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中实现数据对齐可以通过以下几种方法: 1. 使用 alignas 关键字 C++11 引入了 alignas 关键字,可以用来控制变量的对齐方式。 #include <iostream> #include <emmintrin.h> // SSE2 alignas(16) float a 阅读全文
posted @ 2025-01-10 14:06 aisuanfa 阅读(39) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中,noexcept 关键字用于指示一个函数是否可能抛出异常。具体来说: noexcept(true):表明该函数不会抛出异常。如果这个函数在运行时抛出了异常,程序会调用 std::terminate(),导致程序异常终止。 noexcept(false):表明该函数可能会抛出异常。这是 阅读全文
posted @ 2025-01-10 08:24 aisuanfa 阅读(2) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中,在成员函数前加上 static 的作用是指示该函数是一个静态成员函数。具体来说,static 关键字具有以下几个重要特性: 不依赖于对象实例:静态成员函数属于类本身,而不是类的某个对象。这意味着你可以在没有创建类实例的情况下调用这个函数。 无法访问非静态成员:静态成员函数不能访问类的 阅读全文
posted @ 2025-01-10 08:23 aisuanfa 阅读(3) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中,将成员函数声明为 const 的作用是指示该函数不会修改类的成员变量。具体来说,当你在类的成员函数后面加上 const 声明时,这意味着: 保证不修改状态:函数内部不能修改任何非 mutable 的成员变量,确保对象的状态在调用该函数后保持不变。 允许在常量对象上调用:可以在常量对象 阅读全文
posted @ 2025-01-10 08:03 aisuanfa 阅读(1) 评论(0) 推荐(0) 编辑
摘要:进程和线程的区别 进程 是操作系统中资源分配的基本单位。 每个进程有独立的内存空间,相互隔离。 进程间通信(IPC)需要通过特定的机制(如管道、共享内存等)。 开销较大(包括创建、销毁、上下文切换)。 线程 是进程中的一个执行流,是 CPU 调度的基本单位。 同一进程中的线程共享内存和资源(如文件句 阅读全文
posted @ 2025-01-08 00:22 aisuanfa 阅读(9) 评论(0) 推荐(0) 编辑
摘要:出现“无法解析的外部符号”错误通常是由于链接器找不到某个符号的定义。这种情况一般有几个可能的原因: 1. 符号未定义 您可能在代码中声明了一个静态变量,但没有提供定义。比如,如果您在类中声明了一个静态成员变量,但没有在源文件中定义它,链接器就会报错。 示例: // utilities.h names 阅读全文
posted @ 2025-01-03 15:23 aisuanfa 阅读(72) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中,非静态变量可以被静态函数引用,但有一些限制和注意事项。 1. 非静态变量和静态函数的定义 非静态变量:属于类的实例,每个对象都有自己的副本。 静态函数:属于类本身,而不是任何特定的对象。它无法直接访问非静态成员变量或非静态成员函数,因为它没有 this 指针。 2. 如何在静态函数中 阅读全文
posted @ 2025-01-03 15:13 aisuanfa 阅读(19) 评论(0) 推荐(0) 编辑

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