![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++语言
C++语言的积累
Rareay
这个作者很懒,什么都没留下…
展开
-
Linux 线程和线程锁
1 创建、等待、终止线程线程创建#include <pthread.h>/**@param tidp -新创建的线程ID指向的内存单元。 * @param attr -线程属性,默认为NULL * @param start_rtn -线程函数 * @param arg -线程函数的传入参数 * @return 0 创建成功 * -1 创建失败 */int pthread_creat原创 2020-12-29 22:23:16 · 334 阅读 · 0 评论 -
注释规范
1 文件首部/*!* \file Ctext.h* \brief 概述 * *详细概述 * * \author 作者名字* \version 版本号(maj.min,主版本.分版本格式) * \date 日期 2 命名空间/** @brief 命名空间的简单概述 * * 命名空间的详细概述 */namespace text{}3 类/** @brief Ctext的doxygen测试 * * 作doxygen测试用 * @code Ctext a;原创 2020-12-25 19:09:41 · 221 阅读 · 1 评论 -
文件操作
目录1 文件操作1.1 打开/关闭文件1.2 读文件1.3 写文件1.4 文件指针2 虚函数2.1 举例2.2 纯虚函数3 命名空间4 template4.1 函数模板4.2 类模板5 string 转 int1 文件操作根据文件的读写方式,分为了这三种文件数据类型:数据类型描述ofstream输出文件流,可以创建文件,并向文件写信息ifstream输入文件流,...原创 2019-12-02 12:27:08 · 110 阅读 · 0 评论 -
虚函数
1 虚函数关于虚函数的重要概念:定义为虚函数,不代表它不被实现,定义为纯虚函数,才代表它没有被实现定义为虚函数是为了允许用基类的指针来调用子类的这个函数定义纯虚函数是为了实现一个接口,继承这个类时必须要实现这个函数1.1 举例以下代码验证了上面的第二点:class A{ public: virtual void foo() {cout<<"A::foo() is called"<<endl; }}; class B:public原创 2020-12-25 19:06:32 · 485 阅读 · 0 评论 -
命名空间
1 说明命名控件主要是定义某个区间内的函数或类,避免这些函数名与其他库的函数名冲突;下面的例子展示了命名空间的定义和调用,不过调用时建议不使用using namespace关键字,直接使用命名空间的全路径,比如:first_space::func();#include <iostream>// first name spacenamespace first_space{void func(){ std::cout << "Inside first_space" &l原创 2020-12-25 19:07:03 · 71 阅读 · 0 评论 -
模板
1 说明template 表示模板,模板里的变量类型在函数被调用的时候才指定,模板分为函数模板和类模板;2 函数模板函数模板的定义形式如下:template <class type> ret-type func-name(parameter list){ // 函数内容}以上代码中的type是个占位符,表示数据类型,这个数据类型的名称有外部传入;实例:#include <iostream> #include <string>using na原创 2020-12-25 19:07:34 · 215 阅读 · 0 评论 -
STL容器
1 vector可参考这里,或者这里。如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector;1.1 初始化std::vector<int> d1; // 创建vector对象,有0个元素,存储类型为int(可以自定义类型,比如一个结构体)std::vector<int> d2(5); // 创建vector对象,有5个元素,元素初始值依赖编译器std::vector<int> d3(5, 10); // 创建vector对象,有5个元素,元素值原创 2020-12-25 19:08:05 · 90 阅读 · 0 评论 -
数据类型
1 String 字符串1.1 string 和 int 互换string s="123";int a=atoi(s.c_str());int i = 123;std::string s = std::to_string(i);1.2 string 是否包含某子字符串std::string a = "abcdefg";std::string key = "bcd";v = a.find(key);if (v == std::string::npos) // 不存在 std::原创 2020-12-25 19:11:32 · 78 阅读 · 0 评论 -
static关键字
1 类的共享数据.h 文件class Student {public: static std::shared_ptr<Student> mStudent; // 静态类指针 std::vector<int> num; // 共享的数据 void initStudent(); void readStudent();}.cpp 文件//... std::shared_ptr<Student> Student::mStuden原创 2020-12-25 19:11:01 · 57 阅读 · 0 评论 -
Makefile语法
wildcard 关键字# 寻找目录下的某类文件SRC = $(wildcard ./*.c)patsubst 关键字# 把SRC中的所有.c替换成.oOBJ = $(patsubst %.c, %.o, $(SRC))关键符号符号含义$@表示规则中的目标$<表示规则中的第一个依赖条件$^表示规则中的所有依赖条件赋值符号含义=赋值,如果‘=’右边有变量,浅拷贝该值:=赋值,如果‘=’右边有变量,深拷贝该值原创 2020-12-25 17:37:11 · 75 阅读 · 0 评论 -
Cmake语法
设置编译器set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)设置编译选项set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -g -DXXX")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fpermissive -g -DXXX")// 编译选项自定义Release 和原创 2020-12-25 17:17:51 · 522 阅读 · 0 评论