C++从入门到放弃
caicaiatnbu
这个作者很懒,什么都没留下…
展开
-
[C++ 从入门到放弃-02]C++STL之string
C++STL提供了string基本字符串系列容器来处理字符串,可以把string理解成字符串类也可以。慢慢掌握之后你会发现用起来十分的方便。string提供了添加、删除、替换、查找和比较等等很多的方法。[string对象的赋值] 1. 直接给字符串对象赋值 2. 用字符指针给字符串对象赋值#include<iostream> #include<string> #include<stdi原创 2017-05-11 00:37:00 · 1825 阅读 · 0 评论 -
[C++ 从入门到放弃-11]C++STL之priority_queue优先队列容器
特征:就是队列中最大元素总是在队首.优先队列使用方法#include#includeusing namespace std;int main(){ priority_queue pq; pq.push(2); pq.push(0); pq.push(1); pq.push(5); cout<<pq.size()<<endl; while(pq.empty原创 2017-08-02 00:49:57 · 1763 阅读 · 0 评论 -
[C++ 从入门到放弃-10]C++STL之bitset位集合容器
bitset容器是一个bit位元素的序列容器,每个元素只占一个bit位,取值为0或1,有节省内存空间,下面是bitset的存储示意图,它的19个元素只使用了两个字符的空间。 b.any() b中是否存在置为1的二进制位? b.none() b中不存在置为1的二进制位吗? b.count() b中置为1的二进制位的个数 b.size() b中二进制位的个数 b[pos] 访问b中原创 2017-08-02 00:46:25 · 1984 阅读 · 0 评论 -
[C++ 从入门到放弃-01]C++STL之vector
[vector 简介] vector容器可以像数组那样进行随机的访问,还可以在尾部进行插入元素,是一种简单高效的容器,完全可以替换掉数组。vector具有内存自动管理的功能,对于元素的插入和删除,可以动态的整理所占用的内存空间。vector容器的下标也是从0开始计数的。vector容器的定义:可以事先固定大小,事后可以随时间调整大小。事先不定义,随时使用push.back()方法从尾部扩张元素原创 2017-05-11 00:15:20 · 2527 阅读 · 0 评论 -
[C++ 从入门到放弃-07]C++STL之list双向链表容器
学过数据结构都知道,其中有一章专门讲线性表,其中有两块,一是顺序表(也就是我们平时用的比较多的数组,结构数组),二是链表(有指针在,想想都复杂)。而C++ STL中给我们封装好了一个list容器,大大降低了编写难度。list容器实现了双向链表的数据结构,数据元素是通过链表指针串成逻辑意义上的线性表,选择对链表的任一位置的元素进行插入,删除和查找都是非常高效的。在这里我们再复习一下什么是双向原创 2017-07-03 14:47:04 · 2230 阅读 · 0 评论 -
[C++ 从入门到放弃-09]C++STL之queue队列容器
queue队列容器是一个先进先出的线性表,插入和删除分别各在表一端进行,插入元素的一端称为队尾(queue back),删除元素的一端则称为队头(queue front),插入元素称为入队(push)删除元素称为出队(pop)少废话,直接上干货!queue队列容器头文件是 #includequeue的基本操作如下:创建queue,queue原创 2017-07-03 15:16:50 · 2016 阅读 · 0 评论 -
[C++ 从入门到放弃-08]C++STL之stack堆栈容器
stack堆栈是一个后进先出的线性表,插入和删除都只能在表一端进行,插入元素的一端成为栈顶(stack top),而另一端则称为栈底(stack bottom),插入元素称为入栈(push)删除元素称为出栈(pop)少废话,直接上干货!stack堆栈容器头文件是 #includestack的基本操作如下:创建stack,stack s;入栈,如: s原创 2017-07-03 15:06:23 · 1962 阅读 · 0 评论 -
[C++ 从入门到放弃-06]C++STL之multimap多重映照容器
在[C++ 从入门到放弃-05 ]C++STL之map映照容器 中指出map不允许插入的元素键值相同。而本文要说明的multimap是允许插入重复的键值的。所以multimap与map是十分相似的。但在元素插入、删除、查找会存在一些不同,毕竟multimap是支持重复键值的。本文只讲述multimap与map不同的地方。1. multimap创建、元素插入和元素遍历#include#in原创 2017-07-03 14:28:11 · 1634 阅读 · 0 评论 -
[C++ 从入门到放弃-05]C++STL之map映照容器
map映照容器的元素数据包含两个部分:一个键值;一个映照的数据;组成的,键值和映照数据之间具有一一对应的关系。map映照容器的数据结构也是采用红黑树来实现的。注意:不允许插入元素的键值相同。比较函数所比较的也只是键值之间的比较,在检索的时候,通俗的说查找的时候,还是通过键值进行查找。map的用法和set及其相似,如果你之前的都看了,相信你可以猜到map有哪些方法以及操作了。原创 2017-07-03 14:16:14 · 1678 阅读 · 0 评论 -
[C++ 从入门到放弃-04]C++STL之multiset
上一篇我们写到了set,但是set集合是不允许出现带有重复的键值的,那么这篇就说说如果存在键值重复的节点怎么处理multiset与set一样,唯一不同的地方就是multiset允许重复的键值插入 ,但是set不允许,就这个差别!multiset也需要声明头文件,#include,由于它包含了重复的键值元素,所以,在进行插入,删除,查找元素的会和set有一些不同的地方。[multiset元素的插入]#原创 2017-05-11 00:46:34 · 1829 阅读 · 0 评论 -
[C++ 从入门到放弃-03]C++STL之set
Set集合容器实现了红黑树的平衡二叉树的数据结构,在插入元素时候,它会自动的进行调整二叉树的排列,把该元素放到适当的位置,以保证每个子树根节点的键值大于左子树所有的键值,小于右子树所有节点的键值;另外,还要确保根节点左子树的高度与右子树的高度相等,这样,二叉树的高度最小,从而达到检索的速度最快注意:不会插入相同的键值,若存在相同的键值,第二次插入忽略。平衡二叉检索树的检索使用的是二叉树的中序遍历算法原创 2017-05-11 00:42:18 · 1789 阅读 · 0 评论 -
Linux C++ 读写Json文件
使用Json模块开源项目,Github地址:https://github.com/nlohmann/json直接将json.hpp 放入到文件夹中即可。#include "json.hpp"#include <fstream>#include <iostream>using namespace std;using json = nlohmann::...原创 2019-07-07 17:04:03 · 3207 阅读 · 0 评论