std::vector& g 两个参数怎么理解

shellnut6 2018-10-27 11:03:30
template<class EdgeList, class Allocator>
typename std::pair<typename detail::val_edge<EdgeList>::type, bool>
add_edge(typename EdgeList::value_type u, typename EdgeList::value_type v,
std::vector<EdgeList, Allocator>& g)
{
typedef typename detail::val_edge<EdgeList>::type edge_type;
g[u].insert(g[u].end(), v);
return std::make_pair(edge_type(u, v), true);
}

1、 std::vector<EdgeList, Allocator>& g两个参数怎么理解?
2、 g[u].insert(g[u].end(), v);这里g[u]该怎么理解

谢谢
...全文
375 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2018-10-30
  • 打赏
  • 举报
回复
引用 2 楼 shellnut6 的回复:
[quote=引用 1 楼 jianwen0529 的回复:]
1:EdgeList是存储元素的类型,Allocator顾名思义是一个内存分配器
2:vector::insert,第一个参数代表插入的位置,其他的是插入的数据
https://zh.cppreference.com/w/cpp/container/vector/insert


非常感谢,对于Allocator内存分配器这块能不能在解释一下,或者帮忙指一下学习的路子,再次感谢[/quote]
STL容器模板参数都带一个内存分配器,而且有默认值,使用它预定义的内存分配器,如果需要,你可以自定义内存分配器

要学习可以直接看它的源码
还有重载delete new操作符的知识,类的构造和析构等
shellnut6 2018-10-27
  • 打赏
  • 举报
回复
引用 1 楼 jianwen0529 的回复:
1:EdgeList是存储元素的类型,Allocator顾名思义是一个内存分配器 2:vector::insert,第一个参数代表插入的位置,其他的是插入的数据 https://zh.cppreference.com/w/cpp/container/vector/insert
非常感谢,对于Allocator内存分配器这块能不能在解释一下,或者帮忙指一下学习的路子,再次感谢
幻夢之葉 2018-10-27
  • 打赏
  • 举报
回复
1:EdgeList是存储元素的类型,Allocator顾名思义是一个内存分配器
2:vector::insert,第一个参数代表插入的位置,其他的是插入的数据
https://zh.cppreference.com/w/cpp/container/vector/insert

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧