
C/C++
文章平均质量分 76
记录一些C/C++的使用技巧
qq_42766764
这个作者很懒,什么都没留下…
展开
-
C++的std::vector<bool>转储文件
总所周知,C++的并不是一种“标准”的容器。该容器按位存储数据,使用at(size_t)或者其重载的返回的都是一个特化的Reference类,使用begin()之类的函数也是特殊的迭代器。而且不同的编译器,其标准库的实现方式也不一样。如此,直接将数据转储到文件似乎就显得不可能了。那么是否有方法可以进行转储呢?答案是有的,只要能找到存储数据的起始指针即可将数据转储。将转储文件的方法很简单,只要找到相应的起始位置的指针,在将数据直接使用流输出即可。原创 2022-08-25 16:39:46 · 794 阅读 · 0 评论 -
C++中的std::move、移动构造函数、右值、函数返回值联系
本文简要概述std::move、移动构造函数、右值、函数返回值的概念及其相关联系。简单来说,std::move唯一的作用是产生右值,将左值变成右值。左值是可以多次使用的值,右值是即将消亡的值,只能使用一次,无论是左值引用还是右值引用,其代表的都是左值,可以被多次使用。右值可以被用来执行移动构造。对于函数调用,根据规范,必然会产生一次拷贝构造或者移动构造,一般会默认执行移动构造。而release模式下,可能会将其优化成一种另类的构造函数。.........原创 2022-08-05 13:56:13 · 2250 阅读 · 0 评论 -
生物信息学序列比对算法——动态规划
序列比对是生物信息学中非常重要的一个概念,对分析生物数据具有不可或缺的作用。目前绝大多数的序列比对工具均包含了基于动态规划的序列比对的步骤。序列比对问题类似于最长公共子序列问题 (Longest Common Subsequence problem, LCS) ,进而衍生出了全局比对算法尼德曼-翁施算法 (Needleman-Wunsch Algorithm) 与局部比对算法史密斯-沃特曼算法 (Smith-Waterman algorithm) 。.........原创 2022-07-25 17:16:29 · 3133 阅读 · 0 评论 -
Thread Pool 线程池
本文基于经典的99行代码,稍加修改使其支持C++20,并增加了wait与join功能。进行了一定的完善,支持在C++20中使用,增加了join与wait函数。原创 2022-06-16 11:32:58 · 301 阅读 · 0 评论 -
MPI的二维数组(矩阵)传输
MPI的二维数组(矩阵)传输矩阵表示方法错误犯法正确方法矩阵表示方法在C程序中,一般对动态矩阵使用的往往是使用一维数组来表示。再通过确定的列数来表示。例如某矩阵为m×n的矩阵,则对于第(i,j)个元素可以使用a[(i-1)*n+j-1],即该矩阵在内存中是一个线性存储的一整块。但是在实际应用过程中该用法往往很不方便,因此便可以使用如下方法获取任意m×n的矩阵。int** allco_int_matrix(int row, int col) { int** ptr = NULL; ptr = (i原创 2021-03-19 21:16:59 · 4203 阅读 · 2 评论 -
基于Boost的interprocess库在文件(共享内存,mmap)上构造容器(Windows,Linux通用)
本文简要阐述使用boost的interprocess在文件中构造容器的方法。在这里我们以vector为例,构造一个vector。原创 2022-06-15 17:20:53 · 1133 阅读 · 0 评论