
C++使用技巧
文章平均质量分 62
源代码杀手
大厂算法工程师经验、高校教师。
互相学习,共同进步!想做项目,私聊需求。
展开
-
C++并行计算之OpenMP多线程
OpenMP 是一个用于在多个处理器上同时执行 C、C++ 和 Fortran 代码的库。如果它使用大量循环并利用 CPU 的全部功能,这会使您的代码更快。OpenMP 是一组编译器指令、库过程和环境变量,于 1997 年开发用于为具有共享内存的系统(SMP 计算机)创建多线程应用程序。该工具最初是为 Fortan 设计的,后来包括 C 和 C++也是。如今,最流行的 C/C++ 编译器都支持 OpenMP:gcc、icc、PGI 编译器。(请注意,OpenMP 不是该词典型意义上的任何类型的库。原创 2022-09-25 01:48:17 · 2062 阅读 · 0 评论 -
C++使用技巧(二十八):回顾内存new关键字、引用、默认参数、 占位参数、重载、类和对象、构造函数
目录1、栈区、堆区、new关键字2、new关键字开辟数据2、new关键字开辟数组3、 一般引用4、引用做函数参数5、引用做函数返回值6、 常量引用7、函数默认参数8、 函数占位参数9、重载10、类和对象11、struct和class区别12、成员属性设置为私有13、构造函数的分类及调用1、栈区、堆区、new关键字栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放堆区: 由程序员分配释放,若程序员不释放,程序结束时由操作原创 2022-03-20 18:26:47 · 2112 阅读 · 0 评论 -
C++使用技巧(二十七):回顾函数指针参数、数组参数、结构体函数参数
目录1、函数指针参数2、数组参数 冒泡排序函数3、结构体、结构体指针、嵌套结构体、结构体做函数参数1、函数指针参数#include <iostream>#include <algorithm>#include <vector>#include <cmath>#include <stdlib.h>#include <time.h> using namespace std;void swap1(int a ,int b)原创 2022-03-20 17:09:13 · 300 阅读 · 0 评论 -
C++使用技巧(二十六):unique、distance、accumulate搭配lambda函数表达式使用
C++ 11 引入了 lambda 表达式,以允许我们编写一个内联函数,该函数可用于无法重用且不值得命名的短代码片段。最简单的 lambda 表达式可以定义如下:[ capture clause ] (parameters) -> return-type { definition of method } 通常 lambda 表达式中的 return-type 由编译器本身评估,我们不需要显式指定和 -> return-type 部分可以忽略,但在一些复杂的情况下,如条原创 2022-03-20 15:45:44 · 2087 阅读 · 0 评论 -
C++使用技巧(二十五):srand、rand、fill/fill_n、generate/generate_n、count_if搭配使用
1、generate() 和 generate_n()使用方法可以理解为一种填充元素的方法:demo源码实现:#include <iostream>#include <vector> //动态数组#include <deque> //双端队列#include <algorithm> #include <numeric> #include <time.h> using namespace std;void原创 2022-03-20 14:55:43 · 1286 阅读 · 0 评论 -
C++使用技巧(二十四):回顾vector用法及多维数组使用
目录一、什么是vector?二、容器特性1.顺序序列2.动态数组3.能够感知内存分配器的(Allocator-aware)三、基本函数实现1.构造函数2.增加函数3.删除函数4.遍历函数5.判断函数6.大小函数7.其他函数8.看着清楚四、基本用法五、简单介绍六、案例案例1:pop_back()&push_back(elem)实例在容器最后移除和插入数据案例2:clear()清除容器中所有数据案例3:向量排序算法sort案例4:访问(直接数组访问&迭代器访问)案例5:初始化、迭代、插入、擦除遍原创 2022-03-20 12:49:23 · 2941 阅读 · 0 评论 -
C++使用技巧(二十三):回顾整形转化为字符串
其中有使用itoa(),atoi(),sprintf()这三个函数使用字符串流 1 #include<iostream> 2 #include<string> 3 #include<sstream> 4 using namespace std; 5 string itos(int i) // 将int 转换成string{ 6 { 7 stringstream s; 8 s << i; 9 return s.str();10 }原创 2022-03-19 19:45:46 · 1464 阅读 · 0 评论 -
C/C++语言使用技巧(三十三):强大的数学计算库gsl与算法实现
gsl(GNU Scientific Library)是专门为应用数学和科学技术领域的数值计算提供支持的软件库。gsl使用C语言编写,同时也为其他语言做了相应的封装。gsl在GNU通用公共许可下是免费的。该函数库提供了广泛的数学算法的实现函数,包括随机数生成器,特殊函数和最小二乘拟合等等。目前该函数库提供有超过1000个函数,这些函数包含的范围有:复数计算、多项式求根、特殊函数、向量和矩阵运算、排列、组合、排序、线性代数、特征值和特征向量、快速傅里叶变换(FFT)、数值积分、随机数生成、随机数分布、统计、蒙原创 2022-03-18 16:15:46 · 3061 阅读 · 1 评论 -
C++使用技巧(二十一):makefile编写
参考:https://www.cnblogs.com/ycloneal/p/5230266.htmlhttps://www.cnblogs.com/mumuxinfei/p/3992776.htmlhttps://blog.csdn.net/Mahfaeraak/article/details/87302048?spm=1001.2101.编译流程:https://blog.csdn.net/weixin_44881103/article/details/993036712...原创 2022-03-08 10:11:23 · 427 阅读 · 0 评论 -
C++使用技巧(二十):再学public、protected及private用法
1、类的封装与继承类的一个特征就是封装,public和private作用就是实现这一目的。用户代码(类外)可以访问public成员而不能访问private成员;private成员只能由类成员(类内)和友元访问。类的另一个特征就是继承,protected的作用就是实现这一目的。protected成员可以被派生类对象访问,不能被用户代码(类外)访问。案例:#include<iostream>#include<assert.h>#include <cstdlib>原创 2022-03-04 10:30:28 · 1206 阅读 · 0 评论 -
C++使用技巧(十九):内存管理
参考:c++内存管理:https://www.cnblogs.com/mrlsx/p/5411874.htmlhttps://www.jianshu.com/p/19771f5a89ea内存分配方式,堆区,栈区,new/delete/malloc/free:https://blog.csdn.net/jing0611/article/details/4030237内存管理:https://blog.csdn.net/weixin_42743471/article/details/852508482原创 2022-03-03 18:26:23 · 2118 阅读 · 0 评论 -
C++使用技巧(十八):多肽
参考:C++ 多态:https://www.runoob.com/cplusplus/cpp-polymorphism.htmlC++进阶学习—多肽:https://blog.csdn.net/qq_44519484/article/details/106458908多态(虚函数)&抽象类(纯虚函数)&泛型(函数模板):https://blog.csdn.net/huangxiaoguo1/artC++ 之 多态(非常非常重要,重点在后面):https://blog.csdn.net原创 2022-03-03 18:19:38 · 721 阅读 · 0 评论 -
C++使用技巧(十七):虚函数
参考:C++虚函数原理:https://blog.csdn.net/weixin_40673608/8虚函数和纯虚函数的区别:https://blog.csdn.net/Hackbuteer1/article/detail17C++中虚函数与纯虚函数的区别:https://blog.csdn.net/nick_chain/article/d15C++中虚函数、纯虚函数、普通函数三者的区别:https://blog.csdn.net/u010551600/article/details/7984901原创 2022-03-03 18:13:37 · 403 阅读 · 0 评论 -
C++使用技巧(十六):智能指针
DEMO:参考:智能指针的原理及实现:https://blog.csdn.net/lizhentao0707/article/details/81156384详解C++11智能指针:https://www.cnblogs.com/WindSun/p/11444429.htmlC++智能指针——原理与实现:https://blog.csdn.net/runner668/article/details/80539221C++智能指针简单剖析:https://blog.csdn.net/lanxueza原创 2022-03-03 18:07:12 · 278 阅读 · 0 评论 -
C++使用技巧(十五):类构造函数 与 析构函数
参考:https://www.runoob.com/cplusplus/cpp-constructor-destructor.html原创 2022-03-03 17:58:20 · 551 阅读 · 0 评论 -
C++使用技巧(十四):ubuntu16.04--C++ (Cpp) PCM示例与pcm及音频算法的参考资料
参考链接:https://cpp.hotexamples.com/zh/examples/-/PCM/-/cpp-pcm-class-examples.htmlhttps://cpp.hotexamples.com/zh/searchLinux下音频开发:读取声卡PCM数据保存到文件(alsa-lib库)C++ linux pcm转aac转mp4合成视频同步g++ pcm2aacts2mp4.cpp -o pcm2aacaaaaaa -L/usr/local/lib -lfaac -I/usr/l原创 2022-02-28 10:12:23 · 1479 阅读 · 0 评论 -
C++使用技巧(十三):Google-GTest测试框架的安装与使用(demo源码实现)
参考链接:https://www.cnblogs.com/helloworldcode/p/9606838.htmlhttps://blog.csdn.net/fengbingchun/article/details/39667571https://blog.csdn.net/liitdar/article/details/85716608原创 2022-02-22 15:28:49 · 1829 阅读 · 0 评论 -
C++使用技巧(十二):命令行参数使用方法main(int argc, char *argv[])
#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;int main(int argc,char *argv[]){ int i; for (i = 0; i < argc; i++) { cout << "argument" << i << ": " << argv[i] << end.原创 2022-02-22 10:15:54 · 455 阅读 · 0 评论 -
C++使用技巧(十一):函数返回一个数组
#include<iostream>using namespace std;//函数声明int * fun1();int * fun2();int * fun3(int * const buf); //buf 实际上是个传出参数,const表示buf的指向不能更改void dispArr(int *arr ,int n);const int arrlen = 10;int main(){ //方法一,返回局部变量的首地址 int * arr; a原创 2022-02-16 17:09:26 · 1048 阅读 · 0 评论 -
C++使用技巧(十):C++编译生成与调用自定义静态库/动态库
一、引用资料.c的文件 C语言源代码文件;.a的文件 由目标文件构成的档案库文件;.C,.cc或.cxx 的文件 C++源代码文件且必须要经过预处理;.h的文件 程序所包含的头文件;.i 的文件 C源代码文件且不应该对其执行预处理;.ii的文件原创 2022-02-15 18:03:45 · 2611 阅读 · 0 评论 -
C++使用技巧(九):ubuntu环境下Eigen线性代数库的简单使用(C++版本的numpy库))
Eigen 是一个基于C++模板的线性代数库,直接将库下载后放在项目目录下,然后包含头文件就能使用,非常方便。此外,Eigen的接口清晰,稳定高效。下载地址:http://eigen.tuxfamily.org/index.php?title=Main_Page位置在当前程序的当前目录:测试代码:// A simple quickref for Eigen. Add anything that's missing.// Main author: Keir Mierle// #include原创 2022-02-12 11:36:32 · 1414 阅读 · 0 评论 -
C++使用技巧(八):输入输出读写文件
写:#include <iostream>//1. 头文件<fstream>#include <fstream>using namespace std;int main(){ //2. 创建流 ofstream output; //3. 打开文件,将流与文件相关联,这里使用相对路径 output.open("number.txt"); //4. 向文件写入数据 output <&l原创 2022-02-12 10:13:59 · 499 阅读 · 0 评论