- 2024-11-21Cppcheck 静态代码分析
Cppcheck工具主要用于静态代码分析,帮助开发者在不运行代码的情况下发现潜在的错误、代码质量问题或性能隐患。Cppcheck安装sudoaptinstallcppcheckCppcheck使用基本用法cppcheck[选项][文件或目录]常用命令和选项检查单个文件cppcheckexample.cpp检
- 2024-11-19CPP学习
CPP算法之路,不涉及面向对象C++向下兼容C,没有特别强调的地方就用C来写好啦~(我爱C,我爱C++)正文#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;cout<<"hello,chunlei"<<n+1<<endl;return0;}头文件C++的头⽂件⼀般是没有像C语⾔的.h这
- 2024-11-18cpp智能指针
普通指针的不足new和new[]的内存需要用delete和deletel]释放。程序员的主观失误,忘了或漏了释放。程序员也不确定何时释放。普通指针的释放类内的指针,在析构函数中释放。C++内置数据类型,如何释放?new出来的类,本身如何释放?C++11新增三个智能指针类型uniqu
- 2024-11-18cpp 命令行选项参数获取
本文主要讲解getopt和getopt_long函数,这两个函数并不是C++标准库的一部分,而是POSIX标准的函数,主要用于解析命令行选项,在很多UNIX兼容系统中得到了广泛使用。我们在给某个程序指定选项和参数时,通常是如下形式:program-a-bvalue--typetypanme其中横线后面的名称就
- 2024-11-18gcc/g++ 使用技巧
使用技巧常用选项MakeFileGDB调试多进程调试多线程调试常用选项1.基本编译选项-o<output_file>指定输出文件名(可执行文件或目标文件)。g++-omy_programmain.cpp→生成名为my_program的可执行文件-c只编译源代码为目标文件(不链接)。g++-cmain.cpp
- 2024-11-17cpp 实验4
1.hpp2#pragmaonce3#include<iostream>4#include<vector>5#include<string>6#include<algorithm>7#include<numeric>8#include<iomanip>9usingnamespacestd;10classGradeCalc:publicvector<int>
- 2024-11-16CPP 智能指针
CPP智能指针Created:2024-06-30T20:43+08:00Published:2024-11-16T23:17+08:00Categories:C-CPP智能指针的作用智能指针最初使的作用就是离开作用域调用析构函数。因为malloc出来的东西只能通过指针持有,栈上的对象在离开作用域后会自动调用析构函数,但是裸指针会不调
- 2024-11-16VS2022安装
1、下载(1)打开官网,下滑,找到如下界面,点击下载下拉菜单,选择Community2022(这个是免费的)进行下载。(2)下载后得到安装包VisualStudioSetup.exe,如下图所示。2、安装双击下载的安装包打开,出现如下界面。点击继续,出现如下界面,等待下载安装完成。就会出现如下界面。在这一步需
- 2024-11-14[c/cpp]:模板指针
[c/cpp]:模板指针 一、程序代码1#include<iostream>234intmsg(intx)5{6std::cout<<"\t[msg]#\tx:="<<x<<std::endl;7returnx;8}91011//generalpointer12int(*fun)(int);1314
- 2024-11-14cpp容器迭代器失效
在C++中,容器迭代器失效通常由以下几种情况引起:内存重新分配:对于std::vector、std::string等序列式容器,如果插入新元素导致当前容量不足,则会重新分配内存空间,导致所有指向该容器元素的迭代器失效。元素插入或删除:对于某些容器(如std::vector、std::deque和std::map),插入或删除元
- 2024-11-14c++类循环依赖的问题
目前的一种状况是A类中以B类指针作为成员变量,B类在构造时需传入A类指针作为参数。a.hclassA{ B*b;};b.hclassB{ B(A*a);};这种情况需要在头文件中前向声明,然后在.cpp文件中include另一个类的头文件。如下:a.hclassB;classA{ B*b;};b.hclassA;classB{ B
- 2024-11-12cpp
C++:面向对象面向对象特征:封装——抽象——继承——多态特性:1.c++完全兼容C2.c++标准:c++11标准c++14标准3.c++应用:游戏引擎服务器开发UI-QT4.c++main:int5.c++头文件不用.h:include<cmath>==include<math.h>1.<C++增强-命名空间>——
- 2024-11-11gcc-13.2 grpc 编译错误(absl-cpp build fails)
使用gcc-13.2编译absl-cpp会出现以下报错:third_party/abseil-cpp/absl/strings/internal/str_format/extension.h:34:6:warning:elaborated-type-specifierforascopedenummustnotusethe‘class’keyword 34|enumclassFormatConversionChar:uint8_t;
- 2024-11-11gcc 1.c和g++ 1.c有什么区别?gcc 1.cpp和g++ 1.cpp有什么区别?GCC和G++有什么区别?
gcc1.c和g++1.c有什么区别?先假设1.c只有C语言语法,不涉及C++语法,我们利用-E/-S指令对比二者编译过程中的差异。Basedongcc11.4.0andg++11.4.0.#include<stdio.h>intmain(){ shorta=100; printf("%d",a); r
- 2024-11-10cpp实验3
任务1:#pragmaonce#include<iostream>#include<string>usingstd::string;usingstd::cout;classButton{public:Button(conststring&text);stringget_label()const;voidclick();private:stringlabel;};Button::Butt
- 2024-11-10cpp智能指针
普通指针的不足new和new[]的内存需要用delete和deletel]释放。程序员的主观失误,忘了或漏了释放。程序员也不确定何时释放。普通指针的释放类内的指针,在析构函数中释放。C++内置数据类型,如何释放?new出来的类,本身如何释放?C++11新增三个智能指针类型uniqu
- 2024-11-09c++中使用using namespace的命名空间污染问题
如果 a.h 中使用了 usingnamespaceaa;,并且 b.cpp 包含了 a.h,那么在 b.cpp 中可以直接使用 aa 命名空间中的内容,因为 usingnamespaceaa; 会被一并包含进来。解释usingnamespace 会将指定命名空间中的所有符号引入当前作用域。当 b.cpp 包含 a.h 时,a.h 中
- 2024-11-09如何在原生鸿蒙APP中使用RN的bundle包
一、创作背景上一篇博客中,我给大家分享了如何创建一个RN的项目,并且解决了其中的问题点,成功打出了Bundle包。接下来就是我给大家分享一下,如何在原生鸿蒙项目中使用那个Bundle包,这一篇分享完才算是开发环境真正的搭建好了。在本篇中,我将继续分享环境搭建中会遇到的坑点,帮助大家快
- 2024-11-07cpp_10_1
修改程序清单10.7的rain.c程序,用指针进行计算(仍然要声明并初始化数组)。//程序清单2.10#include<stdio.h>#defineMONTHS12//一年的月份数#defineYEARS5//年数intmain(void){//用2010~2014年的降水量数据初始化数组constfloatrain[YEARS][MONTHS]={{4.
- 2024-11-07cpp_9_8.9【(修改函数)计算一个数的p次幂】
#include<stdio.h>doublepower(doublen,intp);//ANSI函数原型intmain(void){doublex,xpow;intexp;printf("Enteranumberandthepositiveintegerpower");printf("towhich\nthenumberwillberaised.Enterq
- 2024-11-07cpp_9【用指针在更改主函数中的变量值】
5.编写并测试一个函数larger_of(),该函数把两个double类型变量的值替换为较大的值。例如,larger_of(x,y)会把x和y中较大的值重新赋给两个变量。#include<stdio.h>voidlarger_of(double*x,double*y){ if(*x>*y){ *y=*x; } elseif(*y>*x){
- 2024-11-07大模型-大模型推理部署-08
目录大模型常见推理框架:Transformers、Llama.cpp、Llamafile、Ollama、vLLM、TGI(TextGenerationInference)、DeepSpeed。vLLM,deepspeed是重点HuggingFace的Transformers强大的Python库,专为简化本地运行LLM而设计。其优势在于自动模型下载、提供丰富的代码片段,以及非常适合
- 2024-11-07制作并量化GGUF模型上传到HuggingFace和ModelScope
llama.cpp是Ollama、LMStudio和其他很多热门项目的底层实现,也是GPUStack所支持的推理引擎之一,它提供了GGUF模型文件格式。GGUF(GeneralGaussianU-NetFormat)是一种用于存储模型以进行推理的文件格式,旨在针对推理进行优化,可以快速加载和运行模型。llama.cpp还支持量
- 2024-11-07制作并量化GGUF模型上传到HuggingFace和ModelScope
llama.cpp是Ollama、LMStudio和其他很多热门项目的底层实现,也是GPUStack所支持的推理引擎之一,它提供了GGUF模型文件格式。GGUF(GeneralGaussianU-NetFormat)是一种用于存储模型以进行推理的文件格式,旨在针对推理进行优化,可以快速加载和运行模型。llama.cpp还支持量
- 2024-11-06c文件和cpp文件区别
.c和.cpp文件的主要区别在于它们对应的编程语言不同,.c文件通常用于C语言,而.cpp文件用于C++语言。虽然C和C++有许多相似之处,但它们之间也有显著的差异:语言特性:.c文件使用的是C语言,C是一种过程式编程语言,注重过程和步骤。.cpp文件使用的是C++语言,C++是一种面向对象编程语言,支