
链表
在Go的container/list中直接边遍历边删除会导致迭代中断,因为被删节点的Next()返回nil;正确做法是提前保存下一个节点指针,再执行删除操作。
vector是C++动态数组容器,适合动态大小、快速索引及尾部增删场景;避免非尾部插入删除、勿误作链表用,注意迭代器失效规则与容量管理细节。
shared_ptr循环引用的本质是双方互相持有导致引用计数无法归零,典型场景包括双向链表、父子对象和观察者模式;weak_ptr通过不增加引用计数并配合lock()安全访问来打破循环。
线程安全队列的核心挑战是避免多线程下push/pop的竞态,锁方案串行化开销大,无锁方案依赖原子操作与CAS但需处理ABA和内存释放;SPSC可用原子索引循环数组实现,MPMC则常用Michael-S...
ConcurrentQueue无法替代环形缓冲区,因其链表实现导致内存不连续、缺乏原子批次操作、不支持预分配与零拷贝;环形缓冲区在SPSC场景下凭借固定容量、缓存友好和无锁特性,更适用于高吞吐低延迟场...
std::list是双向链表,插入删除O(1),不支持随机访问,迭代器稳定,适用于频繁中间修改场景。
C++固定大小内存池通过预分配连续内存块并用自由链表管理空闲块,实现O(1)分配/释放;需注意对齐、链表初始化及线程安全。
new/delete在高频小对象场景变慢,主因是堆管理器簿记开销大、易产生外部碎片;应改用对齐优化的线程局部固定大小内存池,并避免生命周期混用与cache伪共享。
C++简易哈希表基于vector+list实现链地址法,支持intstring映射;核心包括取模哈希函数、桶内查重更新、引用返回查找值、迭代器删除;代码完整可运行,涵盖插入、查找、删除操作。
不能,getaddrinfo返回structaddrinfo链表,含二进制地址结构,需调用getnameinfo或inet_ntop才能转为IP字符串;它返回多个结果因域名可能对应多个A/AAAA记录...