
C++
文章平均质量分 62
刘好念
真诚、勇敢、善良
展开
-
[C++]CMake使用OpenMP并行加速
OpenMP (Open Multi-Processing) 是一个用于并行编程的应用程序接口(API),它支持多平台共享内存的多线程并行化。本文介绍了如何在CMake项目中使用OpenMP进行并行加速。原创 2024-10-02 11:12:29 · 634 阅读 · 0 评论 -
[CMake]CMake指定C++版本
本文介绍了如何指定在使用cmake和make进行编译c++程序时指定所使用的c++版本。原创 2024-08-27 20:11:57 · 1111 阅读 · 0 评论 -
[C++]debug介绍+debug时如何查看指针指向内存处的值
本文介绍了C++中的基本debug知识,包括debug中断点的设置、单步执行中各按钮的功能和如何查看指针指向的内存处的值。原创 2024-05-26 14:07:25 · 1825 阅读 · 0 评论 -
[C++] C++生成随机数
本文给出了C++11中常用的用于生成等特定分布的随机数代码。原创 2024-03-11 14:16:24 · 884 阅读 · 0 评论 -
[CUDA] 同一个函数根据运行设备选择不同的运行方式
有时我们需要在host和device端实现同样的一个函数。一个简单的方法是分别在host和device端上实现两个同名函数,例如fun_host()和,在host和device上分别使用不同的函数。另一种方法只使用一个函数fun(),在编译时根据运行目标的不同选择使用不同的实现方式。该方法可以使用宏实现,本文给出了该方法的实现示例。原创 2024-03-04 16:38:31 · 381 阅读 · 0 评论 -
[C++]根据Debug或者Release编译类型执行不同的代码
本文介绍了如何在C++中,根据编译类型的不同(Debug或者Release)规定代码执行不同的行为,使用NDEBUG宏实现该目标。原创 2024-03-04 20:33:50 · 338 阅读 · 0 评论 -
[CUDA]去除Eigen库中的warning
本文将介绍如何在cuda代码中去除eigen库相关的、我们并不关心的warning信息。原创 2023-11-19 11:27:35 · 922 阅读 · 0 评论 -
[C++]<numeric>头文件介绍
本文主要介绍了C++11标准下的中的accumulate()、adjacent_difference()、inner_product()、partial_sum()和iota()函数的用法和注意事项。并简要介绍了C++17标准下中新增的gcd()、lcm()和midpoint()函数。原创 2021-10-15 19:51:12 · 5861 阅读 · 4 评论 -
[STL]如何初始化指针vector
一、摘要vector是c++中一类经常用到的容器类,与数组相比vector类中存在一些内部函数,配合<algorithm>头文件中的函数可以方便地对vector进行插入、删除等操作。对于存储非指针类型(例如int、float)的vector可以使用赋值操作符=、循环遍历push_back()函数或者fill()函数进行初始化。然而存储指针类型的vector若依旧使用fill()函数进行初始化,所有指针都会指向同一个地址,这当然不是我们希望得到的结果,我们希望vector中每个指针都指向一个新原创 2021-09-13 10:55:51 · 5584 阅读 · 1 评论 -
[C++]C++中string、char *、char[]的转换
一、摘要二、string、char和char[] 之间的转换三、参考原创 2021-09-03 20:54:07 · 775 阅读 · 0 评论 -
[STL] 标准二分算法模板 && lower_bound() upper_bound()代码解析
一、摘要二分算法是经常使用的算法之一,熟练使用二分算法是一个程序员的基本素养。C++的<algorithm>头文件中存在lower_bound()和upper_bound()函数,支持在已排好序的容器中查找首个大于等于或者大于目标元素的迭代器位置。同时在有序容器类,例如set<>和map<>,中也存在类似功能的函数。熟练使用lower_bound()和upper_bound()函数可以方便地使用二分算法解决问题。本文基于< algorithm>,对lower原创 2021-08-29 11:18:27 · 702 阅读 · 0 评论 -
[VSCode] VSCode使用C++运行HelloWorld
一、对于VS Code的介绍首先需要明确的一点是,VSCode并不是一个标准意义上的IDE(Integrated Development Environment,集成开发环境),VSCode更像是一个可以安装各种插件的编辑器。因此与VS、Pycharm等针对特定语言或某类语言的IDE不同,使用VSCode进行编程时需要手动设置一些配置文件。例如,需要设置二、使用VS Code运行HelloWorld三、注意事项...原创 2021-08-21 21:36:10 · 15591 阅读 · 2 评论 -
[C++] 使用<random>头文件生成均匀分布、正态分布的数据
本文主要介绍使用C++ random头文件中自带的函数得到均匀分布和高斯分布。原创 2021-08-09 17:12:36 · 5851 阅读 · 0 评论 -
[STL]priority_queue多种方式自定义排序
本文介绍了STL中priority_queue自定义排序的方法。原创 2021-07-26 13:04:35 · 18519 阅读 · 4 评论 -
[Algorithm] Binary Indexed Tree 树状数组模板
一、背景这是我个人的树状数组模板记录,对于其他人可能没有借鉴意义。二、代码模板// 树状数组类// 下标从1开始class BinaryIndexedTree{public: // 构造函数,初始化数据数组c_,大小为总数据个数+1 BinaryIndexedTree(int n){ c_.resize(n+1); fill(c_.begin(), c_.end(), 0); } // 区间查询,查询[1,idx]范围内的数据和原创 2021-07-24 15:26:04 · 162 阅读 · 0 评论 -
[C++]对string按指定分隔符分割(split)
本文介绍了一种使用``````头文件中的```getline()```函数实现对string字符串按某字符分割的方法。原创 2021-07-21 20:39:25 · 10647 阅读 · 0 评论 -
[C++]按字节读取文件
本文介绍了使用C++按字节读取文件的方法。原创 2021-07-15 10:39:59 · 10390 阅读 · 2 评论 -
[C++]使用fstream和sstream读取文件
一、背景使用fstream和sstream头文件读取文本文件。实现按行读取或者按照空格分隔读取。二、代码按行读取文件内容int main() { ifstream input_file("file.txt"); if (!input_file.good()) { cout << "open fail." << endl; return -1; } else { cout << "open原创 2021-02-21 23:28:03 · 1772 阅读 · 0 评论 -
[STL]set存储pair并自定义排序
本文介绍了C++中set<> 容器的基本使用方法,并通过一个具体用例介绍了使用set<>容器存储pair<>对象,以及自定义set<>容器排序规则的用法。还详细介绍了使用set容器存储pair对象时需要注意的事项。原创 2020-11-30 15:52:11 · 7842 阅读 · 0 评论 -
[STL]sort和priority_queue中使用仿函数时的不同
一、问题提出1.自定义比较函数的sort我们可以使用自定义的cmp函数、lambda函数或者less< int >()、greater< int >()作为自定义compare对象作为参数传给sort函数,达到自定义比较顺序的结果。代码如下:使用自定义cmp函数bool cmp(const int &a, const int &b){ return a<b;}sort(vec.begin(), vec.end(), cmp);使用lamb原创 2020-11-17 19:59:43 · 962 阅读 · 2 评论 -
[STL]为什么sort的自定义cmp函数中必须使用严格弱序(strict weak order)
本文介绍了为何sort()函数中的自定义比较函数cmp需要使用严格弱序。原创 2020-08-02 22:28:08 · 3435 阅读 · 4 评论 -
[leetcode]205. Isomorphic Strings 同构字符串
题目描述: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the characters in s can be replaced to get t. All occurrences of a character must be replaced wi...原创 2018-08-19 19:31:34 · 310 阅读 · 0 评论 -
[leetcode]890. 查找和替换模式
题目你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母。)返回 words 中与给定模式匹配的单词列表。...原创 2018-08-19 19:47:48 · 886 阅读 · 0 评论 -
[leetcode]10. Regular Expression Matching
题目给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 输入:s = "aa"...原创 2018-12-17 20:29:02 · 186 阅读 · 0 评论 -
判断一个数是不是质数,3种方式介绍
本文参考博文判断一个数是不是质数(素数),3种方式介绍,原文章解释的已经很详细,本问增加部分博主自己的理解。一、概念介绍质数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。特别的0,1不是质数。二、方法介绍1.最直接的方法bool isPrime(int n){ if(n<=3){ return n>1; }...转载 2019-08-14 16:51:19 · 4874 阅读 · 2 评论 -
[PAT]1099 Build A Binary Search Tree (30 分)(只得22分的原因)
一、题目:A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node's key. The r...原创 2019-08-14 20:33:13 · 250 阅读 · 2 评论 -
[PAT]1119 Pre- and Post-order Traversals (30 分)(样例1未过,运行时错误原因)
一、题目Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder traversal sequences, or preorder and in...原创 2019-08-15 10:54:00 · 408 阅读 · 0 评论 -
[LeetCode]1171. Remove Zero Sum Consecutive Nodes from Linked List
一、题意Given theheadof a linked list, we repeatedly delete consecutive sequences of nodes that sum to0until there are no such sequences.After doing so, return the head of the final linked list. ...原创 2019-08-26 21:45:33 · 536 阅读 · 0 评论 -
[PAT]1101 Quick Sort (25 分)(样例2段错误原因)
一、题意There is a classical process namedpartitionin the famous quick sort algorithm. In this process we typically choose one element as the pivot. Then the elements less than the pivot are moved to ...原创 2019-08-30 18:58:57 · 468 阅读 · 2 评论 -
[C++] C++构造函数的重载
介绍了C++中构造函数的重载何基本使用。原创 2018-04-19 11:31:06 · 545 阅读 · 0 评论