
C++之STL标准模板库
文章平均质量分 90
学习&&使用C++的标准模板库
selfsongs
现实生活的艰苦,像一捆粗糙的绳子,紧紧的捆住她像捆住天使。天使却从绳索中飞出来,轻轻落在绳索上,唱她应该唱、想唱的歌
展开
-
unordered_map、unordered_set底层哈希表的实现机理
unordered_map、unordered_set底层哈希表的实现机理哈希表哈希函数哈希冲突哈希表数组的特点是:寻址(查询)容易,插入和删除困难;链表的特点是:寻址(查询)困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址(查询)容易,插入删除也容易的数据结构,答案是肯定的,这就是我们要提起的哈希表 。hash函数就是根据key计算出应该存储地址的位置,地址index=H(key),而哈希表是基于哈希函数建立的一种查找表。哈希函数哈希函数的四个性质:原创 2021-11-10 23:53:30 · 3012 阅读 · 0 评论 -
C/C++字符串处理相关总结
字符串处理相关清空字符串区域复制字符串区域搜索字符串相关字符串转整型字符串转浮点型整型转字符串清空字符串区域memset()char* m_buf = new char[10]; memset(m_buf, '\0', 10);bzero()复制字符串区域strcpy()搜索字符串相关strrchr字符串转整型atoi字符串转浮点型atofatod整型转字符串snprintf...原创 2020-08-20 14:34:15 · 785 阅读 · 0 评论 -
unique_ptr和share_ptr的简单实现
unique_ptr和share_ptr的实现原理转载 2020-08-04 17:53:52 · 381 阅读 · 0 评论 -
自己编写strlen、strcpy、strcmp、strcat、memset、memcpy
不使用库函数、自己编写的(strlen、strcpy、strcmp、strcat、memcmp、memcpy、memmove)转载 2020-08-02 20:37:33 · 247 阅读 · 0 评论 -
实现字符串反转
字符串反转零.标准库提供的函数一.自己实现的字符串反转二.字符串中单词反转零.标准库提供的函数使用algorithm中的reverse函数#include <iostream>#include <string>#include <algorithm>using namespace std; int main(){ string s = "hello"; reverse(s.begin(),s.end()); cout<<原创 2020-08-02 20:05:34 · 638 阅读 · 0 评论 -
C++从文件中读入多行数据
C++从文件中读入多行数据std::ifstream练习题C++中文件的读取操作,如何读取多行数据,如何一个一个的读取数据std::ifstream来自std::ifstream常用的成员函数如下Public member functions函数功能(constructor)Construct object and optionally open file (public member function )openOpen file (public member f原创 2020-08-02 16:07:47 · 10390 阅读 · 0 评论 -
C++从键盘输入多行数据
C++从键盘输入多行数据1. scanf函数2.cin1. scanf函数https://blog.youkuaiyun.com/liuuze5/article/details/51098471函数原型int scanf(const char *format,...);调用形式:scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。返回值:scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如:scanf("%d原创 2020-07-31 02:09:58 · 28909 阅读 · 1 评论 -
scanf函数使用
scanf函数使用scanf函数解决问题问题一问题二来自https://blog.youkuaiyun.com/liuuze5/article/details/51098471scanf函数函数原型int scanf(const char *format,...);调用形式:scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。返回值:scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如:scanf("%d %d转载 2020-07-31 02:07:51 · 1311 阅读 · 0 评论 -
二分查找总结
二分查找总结怎么写二分查找**关键点:**动手写二分查找相关例题旋转数组的最小数字爱吃香蕉的珂珂二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。适用情况二分查找只适用顺序存储结构。为保持表的有序性,在顺序结构里插入和删除都必须移动大量的结点。因此,二分查找特别适用于那种一经建立就很少改动、而又经常需要查找的线性表。对那些查找少而又经常需要改动的线性表,可采用链表作存储结构,进行顺序查找。链表上无法实现二分查找。怎么写二分查找求下界问题:1.求大于等于tar原创 2020-07-15 17:17:49 · 447 阅读 · 0 评论 -
标准库之find()和find_if()函数
标准库之find和find_if函数 find()find_if()find()C++标准库中的find,find_if函数可以用于对数组、容器等进行查找。http://www.cplusplus.com/reference/algorithm/find/头文件 #include <algorithm>声明template <class InputIterator, class T> InputIterator find (InputIterator firs原创 2020-07-13 19:38:01 · 8561 阅读 · 1 评论 -
STL中排序函数Qsort,Sort,Stable_sort,Partial_sort,List::sort的用法
STL中排序函数的用法(Qsort,Sort,Stable_sort,Partial_sort,List::sort)https://yq.aliyun.com/articles/622472转载 2020-06-28 22:23:58 · 423 阅读 · 0 评论 -
位图总结
位图位图位图实现位图位图BitMap:位图是一个数组,数组中的每一个数据元素的每一个二进制位表示一个数据,0表示数据不存在,1表示数据存在。如上所示,当我们需要存放一个数据的时候,我们需要安装以下方法:首先确定这个数字在整个数据的哪一个数据(区间)。确定这个数据(区间)的哪一个Bit位上。在这个位上置1即可。举例假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个B原创 2020-06-13 17:33:24 · 413 阅读 · 0 评论 -
std::bitset使用
std::bitsetstd::bitset模板文件声明初始化重载的位操作符访问赋值其他函数转换std::bitsetbitset是一种类似于数组的结构,不过只能存1or 0,而且优化内存空间,一个元素只占1bit模板文件声明//注意bitset中存储的最大bits数由模板参数N决定template <size_t N> class bitset;因为上面的size_t N决定了bitset最多存储的位数,所以得先看看size_t的定义关于size_t定义 size_t是一种原创 2020-06-13 12:51:42 · 4442 阅读 · 0 评论 -
GCC中libstdc++源码剖析之Hashtable
C++ STL源码剖析之Hashtable原创 2020-06-12 23:43:12 · 1815 阅读 · 0 评论 -
gcc、libc、libstdc++都是啥?
gcc、libc、libstdc++都是啥?从libc说起。那eglibc又是什么?还有一个glib又是什么呢?libc++/libstdc++,这两个库有关系吗?说完了这些库,这些库最终都是拿来干嘛的?那g++是做什么的?当你在linux下写C/C++代码的时候,是不是会遇到许多编译链接的问题? 时不时报个glibc,gcc,g++等相关的错误? 很多时候都无从下手,而且比较混乱。 这也是编译链接过程中经常出现的问题。这篇文章不是去介绍如何编译链接,而是理清编译链接过程中碰到的一些概念和出现的问题。尤转载 2020-06-12 11:40:42 · 7247 阅读 · 0 评论 -
stack、queue、priority_queue的使用
stack类模板声明头文件初始化queuestack类模板声明template <class T, class Container = deque<T> > class stack;头文件#include <stack> 初始化explicit stack (const container_type& ctnr);explicit stack (container_type&& ctnr = container_type().原创 2020-06-09 16:51:50 · 398 阅读 · 0 评论 -
list、forward_list、deque的使用
deque、stack、queue、list的使用dequestackqueuelistdequestackqueuelist原创 2020-06-08 22:55:15 · 751 阅读 · 0 评论 -
unordered_map、unordered_set使用
实现机理unordered_map内部实现了一个哈希表,也叫散列表,通过把关键码值映射到Hash表中一个位置来访问记录,查找的时间复杂度可达到O(1),其在海量数据处理中有着广泛应用。因此,其元素的排列顺序是无序的。待补充:使用示例参考:http://c.biancheng.net/view/530.html基本:初始化,增删改查;头文件#include < unordered_map >类模板template < class Key,原创 2020-05-25 00:02:11 · 1125 阅读 · 1 评论 -
set、multiset和map、multimap的使用
set、multiset和map、multimap的使用关联式容器主要有四种:set,map,multiset,multimapset头文件初始化插入遍历查找参考:https://www.cnblogs.com/Solstice/archive/2013/01/20/2868455.htmlhttps://blog.youkuaiyun.com/changjiale110/article/details/79108447?utm_medium=distribute.pc_relevant.none-task-blo原创 2020-05-28 14:14:07 · 723 阅读 · 0 评论 -
array、tuple、string、vector的使用
array、string、vector原创 2020-05-29 18:18:18 · 923 阅读 · 1 评论