首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
首页 /
STL
#
STL
#
5261次浏览
16人互动
收藏话题
分享
此刻你想和大家分享什么
热门
最新
2023-06-24 09:01
已编辑
四川大学 嵌入式软件开发
STL 源码剖析 -- Iterator 迭代器全揭秘
1、iterator_tagiterator_tag 标记了 iterator 的类型。 /// Marking input iterators. struct input_iterator_tag { }; /// Marking output iterators. struct output_iterator_tag { }; /// Forward iterators support a superset of input iterator operations. struct forward_iterator_tag : public input_iterator_tag { }; /...
C/C++基础
点赞
评论
收藏
分享
2023-07-16 10:38
四川大学 嵌入式软件开发
C++ STL 容器设计实现 -- deque
5、dequedeque 是双端队列(double-ended queue),其实现比较特殊,有多段地址连续的存储空间组成,整理布局如下:每段地址连续内存成为一个 nodemap 是指针构成的数据,每个元素指向一个 nodestart 和 finish 是一个迭代器变量,分别指向第一个和最后一个 node迭代器以 node 为单位cur 指向当前元素first 指向 node 第一个元素last 指向 node 最后一个元素的下一个地址node 指向 map 中相应位置,可以很方便找到前一个或者后一个 nodenode 计算如下元素占用内存小于 512 字节,最大占用 512 字节否则,默认分...
C/C++基础
点赞
评论
收藏
分享
2023-05-06 15:37
已编辑
C++ STL容器和算法:详解和实例演示
C++ STL(标准模板库)提供了一组丰富的容器和算法,使得开发者能够更加高效地编写程序。本文将介绍STL中的一些常用容器和算法。容器vectorvector是一个动态数组,可以在运行时调整大小。它的优点在于可以快速地访问元素,缺点是在插入和删除元素时需要移动后面的元素。 #include <vector> #include <iostream> using namespace std; int main() { vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); for (int i...
C++编程指南:从入门到...
点赞
评论
收藏
分享
2023-06-24 09:23
已编辑
四川大学 嵌入式软件开发
STL 源码剖析 -- Allocator 内存分配全揭秘
1、std::allocator操作符 new 申请内存成功后,调用构造函数初始化内存。另外一种申请内存的方法是调用 operator new() 函数,该函数只申请内存,不执行构造函数。 #include <iostream> class Foo { public: Foo() { std::cout << "Foo::ctor" << std::endl; } ~Foo() { std::cout << "Foo::dtor" << std::endl; } }; int main() { { std::cout <<...
C/C++基础
点赞
评论
收藏
分享
2023-07-16 10:15
四川大学 嵌入式软件开发
C++ STL 容器设计与实现分析 -- list
3、listlist 是双向链表实现。双向链表结点在堆上动态申请,插入和删除操作不存在移动元素的操作。3.1、_List_nodelist 中每个结点都用 _List_node 表示,继承于 _List_node_base。_List_node 成员 _M_storage,用于保存数据。 /// stl_list.h /// An actual node in the %list. template<typename _Tp> struct _List_node : public __detail::_List_node_base { #if __cplusplus >= 2...
C/C++基础
点赞
评论
收藏
分享
2023-06-26 21:41
四川大学 嵌入式软件开发
C++ STL 容器设计与实现分析 -- vector
2、vectorvector 属于动态数组,自动控制存储空间,根据需要进行扩展和收缩。通常拥有额外的空间以处理未来的增长,这样,每次插入元素时,不需要每次重新分配内存,仅在附加内存耗尽时才重新分配。可使用 capacity() 查看分配的内存总量,也可以调用 shrink_to_fit() 将额外的内存返回给系统。如果事先知道元素数量,可调用 reserve(n) 一次性分配内存。vector 继承于 _Vector_base,_Vector_base 只有一个 _Vector_impl 类型的成员变量。 template<typename _Tp, typename _Alloc>...
C/C++基础
点赞
评论
收藏
分享
2023-05-22 15:57
门头沟学院 C++
std::invoke,通用的函数调用器
std::invoke 是 C++17标准库中引入的一个函数模板,用于统一地调用可调用对象(函数、函数指针、成员函数指针、仿函数等)。它解决了在 C++ 中调用可调用对象的一致性和灵活性问题。 在之前的 C++ 版本中,要调用不同类型的可调用对象,需要使用不同的语法,例如使用函数调用运算符 () 来调用函数或函数指针,使用成员访问运算符 -> 或 . 来调用成员函数。这样的语法差异导致了代码的冗余和不一致,给编写和维护代码带来了困扰。 std::invoke 的引入就是为了解决这个问题,它提供了一种统一的调用语法,无论是调用函数、函数指针、成员函数指针还是仿函数,都可以使用相同的方式进行...
点赞
评论
收藏
分享
2023-07-16 10:28
四川大学 嵌入式软件开发
C++ STL 容器设计实现 -- forward_list
4、forward_list (C++11)forward_list 是 C++11 引入的单链表数据结构。4.1、_Fwd_list_node首先是 forward_list 链表结点。_Fwd_list_node 继承于 _Fwd_list_node_base,成员 _M_storage 保存用户数据,_M_valptr() 函数返回 _M_storage 的地址。 /// forward_list.h template<typename _Tp> struct _Fwd_list_node : public _Fwd_list_node_base { _Fwd_list_no...
C/C++基础
点赞
评论
收藏
分享
2023-06-26 21:34
四川大学 嵌入式软件开发
C++ STL 容器设计与实现分析 -- array
1、array(C++11)array 是固定长度的数组,定义时就指定长度,一旦定义长度不能更改(不能扩容)。 template<typename _Tp, std::size_t _Nm> struct array { typedef _Tp value_type; typedef value_type* pointer; typedef const value_type* const_pointer; typedef value_type& reference; typedef const value_type& const_reference; typedef value_t...
C/C++基础
点赞
评论
收藏
分享
2024-08-25 16:34
南昌大学 C++
题解 | #线段重合#
#include <iostream> #include <queue> #include <algorithm> using namespace std; int n; struct line { int l; int r; }lin[100005];//用结构体存储线段,方便排序 bool cmp(line l1,line l2)//按线段左端点升序排序 { return l1.l < l2.l; } int main() { cin>>n; for(int i=0;i<n;i++) cin>>lin[i].l>...
牛客竞赛题解
点赞
评论
收藏
分享
提到的真题
返回内容
玩命加载中
创作者周榜
更多
热议话题
更多
1
...
毕业季,给职场新人一些建议
0
2
...
国企vs私企,怎么选?
0
3
...
我的求职总结
0
4
...
辞职之后最想做的一件事
0
5
...
我的实习日记
0
6
...
选offer应该考虑哪些因素
0
7
...
小米硬件提前批进度交流
0
8
...
为了秋招你都做了哪些准备?
0
9
...
晒一晒你收到的礼盒
0
10
...
薪资一样,你会选择去大厂还是小公司
0
牛客网
牛客企业服务