C++
龙井茶110
嵌入式刚入门的一个小白, 请各位多多包涵
展开
-
C++ 11学习
原始字符串字面量, 就不需要转义引脚. 原始字符串字面量以R"(开头, 以)" 结尾:string str = R"(Hello World!)";原创 2021-11-25 05:45:08 · 561 阅读 · 0 评论 -
C++ 谓词
返回bool类型的仿函数称为谓词如果operator() 接受一个参数, 那么叫做一元谓词如果operator() 接受的两个参数, 那么叫做二元谓词.原创 2021-06-30 07:02:12 · 125 阅读 · 0 评论 -
C++函数对象
函数对象概念重载和拿书调用操作符的类, 该对象称为函数对象函数对象使用重载的()时, 行为类似函数调用, 也叫仿函数函数对象(其实就是仿函数)是一个类, 不是一个函数函数对象的使用函数对象在使用时, 可以像普通函数那样调用,可以有参数, 可以有返回值函数对象超出普通函数的概念, 函数对象可以有自己的状态函数对象可以作为参数传递class MYprint{ public: MYprint() { this->count = 0; } void operator()(原创 2021-06-30 06:53:02 · 59 阅读 · 0 评论 -
map/multimap 容器
map 概念map 中所有元素都是pairpair中第一个元素为key(键值), 起到索引作用, 第二元素为value(实值)所有元素都会根据元素的键值自动排序map/multimap 属于关联式容器, 低层结构是用二叉树实现优点: 可以根据key值快速找到value值map和multimap区别map 不允许容器中有重复key值元素multimap 允许容器中有重复key值元素构造map<T1, T2>mp; // map默认构造函数map(const map &am原创 2021-06-25 07:44:59 · 99 阅读 · 0 评论 -
C++ pair对组
成对出现的数据,利用数组可以返回两个数据pair<type, type> p(value1, value2);pair<type, type> p = make_pair(value1, value2);pair<string, int>p("tom", 20);p.first 访问到的是 第一个元素p.second 访问到的是 第二个元素...原创 2021-06-25 06:39:06 · 490 阅读 · 0 评论 -
C++ set/multiset 容器
set/multiset容器 属于关联式容器, 底层结构是用二叉树实现set/multiset 区别set 不允许容器中有重复的元素multiset 允许容器中有重复的元素两个都包含在include <set> 头文件中set 构造和赋值创建set容器以及赋值set<T> st; // 默认构造函数set(const set &st); // 拷贝构造函数赋值操作:set &operator=(const set &st); //原创 2021-06-23 22:20:44 · 180 阅读 · 1 评论 -
C++ list 容器
链表容器:优点: 可以对任意位置进行快速插入或删除元素缺点: 容器遍历速度, 没有数组快, 占用空间比数组大\双向链表: 由于链表的存储方式并不是连续的内存空间, 因此链表list中的迭代器只支持迁移和后移, 属于双向迭代器list 构造函数list<T> lst; // list 采用模板实现对象的默认构造形式list(beg, end); // 构造函数将[beg, end] 区间中的元素拷贝给本身list(n, elem); // 构造函数将n个elem拷贝给本身li原创 2021-06-22 07:40:49 · 136 阅读 · 0 评论 -
C++ queue 容器
queue 容器 先进先出一些api 函数接口入队 push出队 pop返回队头元素 front返回队尾元素 back判断队是否为空 empty返回队列大小 -size原创 2021-06-22 06:26:46 · 122 阅读 · 0 评论 -
C++ stack 容器
栈容器 先进后出不能编译栈容器其他API接口入栈-- push出栈 --pop返回栈顶 -- top判断栈是否为空 -- empty返回栈大小-- size原创 2021-06-22 06:08:24 · 175 阅读 · 0 评论 -
C++ deque容器
deque : 双端数组, 可以对头端进行插入删除操作deque与vector 区别vector 对于头部的插入删除来说, 效率低, 数据量越大, 效率越慢deque 相对而言, 头部的插入和删除比vector 速度快vector 访问元素时, 的速度比deque块, 这和两者内部实现有关deque 内部工作原理deque内部有一个存储空间, 叫中控器, 维护每段缓冲区中的内容, 缓冲区存放真实数据中控器维护的是每个缓冲区的地址, 使得使用deque时像一片连续的内存空间deque构造函数原创 2021-06-18 07:07:46 · 139 阅读 · 0 评论 -
C++ vector 容器
vector 数据结构类似于数组, 也称为单端数组vector与普通数组区别, 不同之处在于数组空间是静态的, 而vector 可以动态扩展动态扩展:本质不是在后面接续一块空间, 而是找更大的内存空间, 让后将元数据拷贝到新的空间, 释放旧空间函数原型vector<T> v; // 采用模板实现类实现, 默认构造函数vector(v.begin(), v.end()) // 将v[begin(), end()] 区间中的元素拷贝给本身vector(n, elem); // 构原创 2021-06-17 06:29:16 · 173 阅读 · 0 评论 -
c++ string 操作
string& assign ( const string& str );string& assign ( const string& str, size_t pos, size_t n );string& assign ( const char* s, size_t n );string& assign ( const char* s );string& assign ( size_t n, char c );basic_string &a原创 2021-06-16 05:48:41 · 691 阅读 · 0 评论 -
C++ STL
C++ 的面向对象和泛型编程思想, 目的就是复用性的提升STL 标准模板库STL 从广义上分为, 容器(container) 算法(algorithm) 迭代器(iterator)容器和算法之间通过迭代器进行无缝连接stl 几乎所有的代码采用了模板或模板函数STL六大组件STL 大体分为六大组件, 分别是: 容器, 算法, 迭代器, 仿函数, 适配器(配接器), 空间配置器1, 容器: 各种数据结构, 如vector, list, deque, set, map 等用来存放数据2, 算法:原创 2021-06-15 07:25:37 · 110 阅读 · 1 评论 -
C++ 提高编程
C++ 提高编程 针对的是泛型编程和STL技术做详细讲解,探讨C++更深层的使用模板的概念模板就是建立通用的模板,大大提高复用性.模板的目的, 为了提高复用性, 将类型参数化函数模板template // 声明一个模板, 告诉编译器后面代码中紧跟着的T不要报错, T是一个通用数据类型void test_func(T &a, T &b)1, 自动类型推导test_func(a, b), 编译器自动推导T的类型2, 显示器指定类型test_func(a, b)...原创 2021-06-11 08:20:04 · 131 阅读 · 0 评论 -
C++ const 和constexpr
const 回顾一下内容cosnt int *p = &a;const 修饰的是 *p 所以, 表示指针的地址是可以改变的, 但是指针里面的内容是不能发生改变的, 指针可以指向任何地址, 一旦指向的地址, 该地址的内容就不能发生改变int * const p = &a; const 修饰的是p 所以指向的地址不能发生改变, 但是地址里面的内容是可以发生改变const 发生的阶段是在程序运行阶段constexpr 发生的阶段时编译阶段, 这样可以大大提升代码效率...原创 2021-04-19 22:45:03 · 75 阅读 · 0 评论 -
C++的语法积累
// 函数默认参数// 如果我们自己给函数传入数据, 就用自己的数据, 如果没有, 那么就用默认值// 语法: 返回值类型 函数名 (形参 = 默认值){}// 注意事项:// 1, 如果某个位置已经有了默认参数, 那么从这个位置往后, 从左到右都必须有默认值// 2, 如果函数声明有默认参数, 函数实现就不能有默认参数, 如果函数实现有默认参数, 那么函数的声明就不能有默认参数int func2(int a = 10, int b = 10); // 声明int func2(int a =原创 2021-03-09 07:34:12 · 286 阅读 · 0 评论 -
C++ 学习之类和对象
C++ 面向对象的三大特性为: 封装, 继承, 多态C++ 认为所有事物都是对象. 对象上有其属性和行为封装:封装的意义:将属性和行为作为一个整体,表现生活的事物.将属性和行为加以权限控制.封装的意义.在设计类的时候, 属性和行为写在一起,表现事物.语法: class 类名{};...原创 2020-09-15 07:30:42 · 115 阅读 · 0 评论 -
C++学习
new 操作符在堆区开辟数据语法: new 数据类型int *p = new int (10); // int 的类型值为10的空间,delete p ; 释放内存int * arr = net int[10]; // 创建一个数组, 这个数组有10个元素delete[] arr; 释放这个数组, 必须在delete后面加[]C++ 引用 给变量起别名语法: 数据类型 &别名 = 原名引用: 必须初始化, 引用在初始化后不可改变int main(){int a =原创 2020-09-10 07:34:09 · 88 阅读 · 0 评论 -
C++第一个程序
#include <iostream>using namepace std;int main(){ cout << "hello world" << endl; system("pause"); return 0;}原创 2020-01-08 12:32:09 · 84 阅读 · 0 评论