如何手写vector并且实现任意大小&&vector.resize()用法

学术版

vector貌似是log的,就是一个倍增数组
by ZYyboT @ 2019-10-22 08:47:15


```cpp template<typename Element,Sequence=defult_seq,Cmp=defult_cmp> struct xxx{ }; ``` 然后内部封装和接口什么的自己写
by ZYyboT @ 2019-10-22 08:50:23


两个defult是默认函数,stl的vector你不填的话就是他自带的 ```vector```和```less<typename _Sequence::value_type>``` 填了的话就是用的你自己的函数(我个人暂时没搞懂第二个如何手写,暂且用stl自带的会好一点,第三个就是一个重载了二元括号运算比较结构体,你不填的话就相当于的“大于号”)
by ZYyboT @ 2019-10-22 08:53:36


(上面两个是priority_queue的,vector的会更简单,貌似后面两个都不用了)
by ZYyboT @ 2019-10-22 08:54:17


STL 里vector给出的template是: ``` template<typename _Alloc> ``` 确实比priority_queue简单很多,只要内部做一个倍增即可(貌似
by ZYyboT @ 2019-10-22 08:55:30


@[ZYyboT](/space/show?uid=14375) thx。然而蒟蒻用数组模拟vector之后还是被卡。所以您有木有O(3)优化的语句。在救救蒟蒻
by zyywzw @ 2019-10-22 09:03:28


@[zyywzw](/space/show?uid=28906) vector是均摊$O(1)$的吧? 而且常数不大,为什么需要手写?
by little_gift @ 2019-10-22 09:28:04


@[little_gift](/space/show?uid=22132) P5270 无论怎样神树大人都会删库跑路
by zyywzw @ 2019-10-22 09:34:06


您看一下就明白了
by zyywzw @ 2019-10-22 09:34:25


@[zyywzw](/space/show?uid=28906) 不太懂啊QAQ
by little_gift @ 2019-10-22 09:38:18


|