From 20e3dd2b5bdc521468362f109eb00210b3865a3e Mon Sep 17 00:00:00 2001 From: 1AoB <2453468739@qq.com> Date: Fri, 10 May 2024 22:21:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=AF=B9vector=E7=9A=84?= =?UTF-8?q?=E7=90=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md b/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md index cfe59df..42c0493 100644 --- a/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md +++ b/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md @@ -178,6 +178,10 @@ Child::fun() vector:底层是一个动态数组,可以通过下标进行快速随机访问,占据连续的内存,在不扩容的情况下,在尾部增删很快.在扩容的情况下,需要先开辟原来容器大小的1.5倍,再将原数据拷贝到新的内存,最后在释放原内存 +==他的缺点是在数组的中间进行增加或者删除时的复杂度为O(n)==,但是==删除慢这个缺点可以用一些简单的算法进行优化==,比如说可变数组它最后一个位置删除很快,我们可以用swap将这个位置的数与尾部的数进行交换,再删除尾部这个数. + + + list:是一个双向链表,他访问一个元素的复杂度是o(n),他的内存是不连续的,节点之间通过指针连接.他唯一的优势是可以快速的在任意位置进行增删,但前提是先经过o(n)的复杂度找到这个位置 Map:是一个键值对,类似于json那种结构,底层是红黑树实现.