
C++ STL
文章平均质量分 69
标准库
K_Watchmen
这个作者很懒,什么都没留下…
展开
-
排序算法介绍
1>原创 2024-09-02 14:43:08 · 891 阅读 · 0 评论 -
C++STL sort
所有的sort算法的参数都需要输入一个范围,[begin, end)。这里使用的迭代器(iterator)都需是随机迭代器(RadomAccessIterator), 也就是说可以随机访问的迭代器,如:it+n什么的。(partition 和stable_partition 除外)如果你需要自己定义比较函数,你可以把你定义好的仿函数(functor)作为参数传入。每种算法都支持传入比较函数。原创 2024-09-02 14:02:15 · 1125 阅读 · 0 评论 -
C++STL list实现原理
list是一个双向链表容器,它可以在其内部存储各种类型的元素,并且支持动态地添加、删除和修改元素。list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。原创 2024-09-01 23:24:12 · 1029 阅读 · 0 评论 -
stoll用法
stoll用法原创 2024-07-15 10:28:42 · 151 阅读 · 0 评论 -
STL-sort()
1、sort函数是algorithm库下的一个函数,sort函数是不稳定的,2、sort()的平均排序复杂度为均为O(N*log2(N)) ,原创 2024-07-10 12:26:50 · 154 阅读 · 0 评论 -
Vector底层实现原理
shrink_to_fit:C++11新特性(匹配当前对应的空间,先使用clean清楚元素,在调用shrink就可以释放空间):释放未使用的内存;就是让_M_end_of_storage复制给_M_finsh,把这两者之间的内存都释放掉;1、删除最后的元素:直接删除,_M_finsh向前移动一位;2、删除非最后的元素:将所有待删除后的元素整体向前平移一位;at方式:比操作符方式多了一个检查越界的操作,两种方式都是返回具体元素的引用;_M_end_of_storage:动态内存最后一个元素的下一个位置。原创 2024-07-03 18:41:22 · 496 阅读 · 0 评论 -
string相关
string::npos是一个静态成员常量,表示size_t的最大值(Maximum value for size_t)。该值表示“直到字符串结尾”,作为返回值它通常被用作表明没有匹配。因为string::size_type描述的是size,故需为无符号整数型类别。因为缺省配置为size_t作为size_type,**于是-1被转换为无符号整数类型,npos也就成为了该类别的最大无符号值。原创 2024-07-02 10:12:54 · 303 阅读 · 0 评论 -
Vector相关
emplace 是C++11新特性,emplace_back() 和 push_abck() 的区别是:push_back() 在向 vector 尾部添加一个元素时,首先会创建一个临时对象,然后再将这个临时对象移动或拷贝到 vector 中(如果是拷贝的话,事后会自动销毁先前创建的这个临时元素);而 emplace_back() 在实现时,则是直接在 vector 尾部创建这个元素,省去了移动或者拷贝元素的过程。原创 2024-06-08 10:45:03 · 631 阅读 · 0 评论