STL基础知识
或许对了
我曾七次鄙视自己的灵魂
展开
-
玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言
转自:https://www.cnblogs.com/coderzh/archive/2009/04/06/1430364.html一、前言这篇文章主要总结gtest中的所有断言相关的宏。 gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:\1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。\2. EXPECT_* 系列的断言,当检查点失败时,继续往下执行。二、示例// int.转载 2020-08-14 11:25:10 · 227 阅读 · 0 评论 -
STL容器迭代器失效情况分析、总结(2)
本文主要介绍一下STL容器迭代器由于插入、删除元素可能引起的迭代器失效。1. 迭代器失效当使用一个容器的insert或者erase函数通过迭代器插入或删除元素可能会导致迭代器失效,因此我们为了避免危险,应该获取insert或者erase返回的迭代器,以便用重新获取的新的有效的迭代器进行正确的操作:iter = vec.insert(iter);iter = vec.erase(iter)...转载 2020-04-17 12:00:25 · 490 阅读 · 0 评论 -
STL之vector容器详解(2)
vector 容器vector是C++标准模版库(STL,Standard Template Library)中的部分内容。之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说:vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。使用vector容器之前必须加上头文件:#include;vector属于std命名域的内容,因此需要通过命名限定:using s...转载 2020-04-17 11:03:14 · 249 阅读 · 0 评论 -
Effective STL
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qcpwxQhi-1585901574462)(C:\Users\w00448203\AppData\Roaming\Typora\typora-user-images\1585896080697.png)]条款21: 永远让比较函数对相等的值返回falseset<int, less_equal > s;...原创 2020-04-03 16:13:49 · 330 阅读 · 0 评论 -
C++ STL在线查询学习
https://zh.cppreference.com/w/cpp/algorithm/min_elementhttps://www.includehelp.com/stl/http://www.yolinux.com/TUTORIALS/LinuxTutorialC++STL.htmlhttps://courses.cs.northwestern.edu/311/html/stl-a...原创 2020-01-09 14:49:11 · 292 阅读 · 0 评论 -
C++ Template 进阶指南-4
2.3 即用即推导2.3.1 视若无睹的语法错误这一节我们将讲述模板一个非常重要的行为特点:那就是什么时候编译器会对模板进行推导,推导到什么程度。这一知识,对于理解模板的编译期行为、以及修正模板编译错误都非常重要。我们先来看一个例子:template <typename T> struct X {}; template <typename T> s...转载 2020-01-03 16:22:39 · 1179 阅读 · 0 评论 -
C++ Template 进阶指南-3
2.2 模板世界的If-Then-Else:类模板的特化与偏特化2.2.1 根据类型执行代码前一节的示例提出了一个要求:需要做出根据类型执行不同代码。要达成这一目的,模板并不是唯一的途径。比如之前我们所说的重载。如果把眼界放宽一些,虚函数也是根据类型执行代码的例子。此外,在C语言时代,也会有一些技法来达到这个目的,比如下面这个例子,我们需要对两个浮点做加法, 或者对两个整数做乘法:s...转载 2020-01-03 16:22:06 · 298 阅读 · 0 评论 -
C++ Template 进阶指南-2
2. 模板元编程基础2.1 编程,元编程,模板元编程技术的学习是一个登山的过程。第一章是最为平坦的山脚道路。而从这一章开始,则是正式的爬坡。无论是我写作还是你阅读,都需要付出比第一章更多的代价。那么问题就是,付出更多的精力学习模板是否值得?这个问题很功利,但是一阵见血。因为技术的根本目的在于解决需求。那C++的模板能做什么?一个高(树)大(新)上(蜂)的回答是,C++里面的模板,犹...转载 2020-01-03 16:21:03 · 183 阅读 · 0 评论 -
C++ Template 进阶指南-5
3 深入理解特化与偏特化3.1 正确的理解偏特化3.1.1 偏特化与函数重载的比较在前面的章节中,我们介绍了偏特化的形式、也介绍了简单的用例。因为偏特化和函数重载存在着形式上的相似性,因此初学者便会借用重载的概念,来理解偏特化的行为。只是,重载和偏特化尽管相似但仍有差异。我们来先看一个函数重载的例子:void doWork(int);void doWork(float);...转载 2020-01-03 16:20:00 · 1204 阅读 · 0 评论 -
C++ Template 进阶指南-1
转自http://www.yhc201.com/blog/2018/05/10/cpp-template/0. 前言0.1 C++另类简介:比你用的复杂,但比你想的简单C++似乎从他为世人所知的那天开始便成为天然的话题性编程语言。在它在周围有着形形色色的赞美与贬低之词。当我在微博上透露欲写此文的意愿时,也收到了很多褒贬不一的评论。作为一门语言,能拥有这么多使用并恨着它、使用并畏惧它...转载 2020-01-03 16:17:17 · 627 阅读 · 0 评论 -
三十分钟入门STL
http://net.pku.edu.cn/~course/cs202/2014/resource.htmlhttp://net.pku.edu.cn/~yhf/linux_c/index.htm三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收...转载 2020-01-03 12:22:27 · 164 阅读 · 0 评论 -
C++标准模板库(Standard Template Library)
# 标准模板库(Standard Template Library)STL的代码从广义上讲分为三类:- container(容器): 包含、放置数据的地方。- iterator(迭代器): 在容器中指出一个位置、或成对使用以划定一个区域,用来限定操作所涉及到的数据范围。- algorithm(算法): 要执行的操作几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和...原创 2019-12-16 16:40:13 · 352 阅读 · 0 评论 -
【转载】STL迭代器失效分析及总结
转自:https://blog.csdn.net/lujiandong1/article/details/49872763参考:https://blog.csdn.net/yangquanhui1991/article/details/52077562https://blog.csdn.net/u010318270/article/details/785753711. 对于序列式...转载 2019-10-17 15:23:09 · 160 阅读 · 0 评论 -
【转载】C++轮子——STL关联容器
转自: http://blog.guorongfei.com/2018/03/23/associative-contianer/上一篇文章中我们简单的介绍了一下STL中的序列容器和容器适配器,这篇文章中我们将重点介绍STL中的关联容器(最后四个在概念上应该不是关联容器,但是因为和前面的容器联系太紧密,统一放在这里讲解),主要内容包括:std::set std::map std::mul...转载 2019-10-16 15:07:08 · 324 阅读 · 0 评论 -
【转载】STL之vector使用实战详解
转自:https://www.cnblogs.com/scandy-yuan/archive/2013/01/07/2849735.htmlvector容器vector是C++标准模版库(STL,Standard Template Library)中的部分内容。之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说:vector是一个能够存放任意类型的动态数组,能够增加...转载 2019-10-16 11:48:45 · 129 阅读 · 0 评论 -
【转载】STL之list容器实战详解
转自:https://www.cnblogs.com/scandy-yuan/archive/2013/01/08/2851324.htmlList 容器list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。使用list容器之前必须加上<vector>头文件:#...转载 2019-10-16 11:47:05 · 120 阅读 · 0 评论 -
STL简单学习入门
首先介绍顺序容器:•容器中的元素是有序的(ordered),但并未排序(sorted)。顺序容器共有3种,分别是vector、list、deque。1、vctor:定义:向量容器,一种动态数组,可取代C++语言本身提供的传统数组,提供随机存取的能力,操作尾端元素的速度最快。由于所有元素占用连续的空间,所以一旦进行插入或删除操作,有可能是原本的某些iterators失效...原创 2019-08-29 15:04:35 · 449 阅读 · 0 评论 -
【转载】STL容器之vector
转载自:https://blog.csdn.net/effective_coder/article/details/8733673感谢原作者Vector总览vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动...转载 2019-09-23 15:58:16 · 109 阅读 · 0 评论 -
【转载】C++ STL顺序容器 —— deque底层实现原理剖析
文章目录概述 deque的中控器 deque的迭代器 deque的数据结构 deque的构造与内存管理 deque的元素操作概述vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。vector当然也可以在头尾端进行操作(从技术观点),但是其从头部操作效率奇差,无法被接受。de...转载 2019-09-02 11:28:23 · 436 阅读 · 1 评论 -
【转载】如何理解STL中deque?
deque是一个双端队列(double-endedqueue),也是在堆中保存内容的.它的保存形式如下:[堆1]...[堆2]...[堆3]每个堆保存好几个元素,然后堆和堆之间有指针指向,看起来像是list和vector的结合品.它支持[]操作符,也就是支持随即存取,可以让你在前面快速地添加删除元素,或是在后面快速地添加删除元素,然后还可以有比较高的随机访问速度,和vector的效率相差无几...转载 2019-09-02 11:39:57 · 141 阅读 · 0 评论 -
【转载】C++ 常用STL库总结
感谢原作者,建议看原贴,排版好看着呢https://blog.ailemon.me/2019/03/29/cpp-stl-library-summary/发布者:AI柠檬博主2019-03-29于C++ 常用STL库总结留下评论点击量:791我们在使用C++开发相关软件、实现一些算法的时候,不可避免的会使用到STL标准库,本文对这个标准库常用的几种数据结构和算法库进行了整理。代...转载 2019-09-02 16:10:33 · 254 阅读 · 0 评论 -
【转载】C++ 迭代器概览
迭代器 (iterator) 是 C++ 程序中常用的一种设计模式,它最重要的作用是为访问容器提供了统一的接口。C++ STL 有许多容器,例如 vector、list、deque、map、unordered_map 。而我们常常对不同的容器有相同的操作,比如在容器中查找一个元素、找出满足条件的所有元素并返回。为了不必为每个容器写一个操作函数,我们希望容器提供一个访问元素的统一接口,从...转载 2019-09-02 19:42:12 · 411 阅读 · 1 评论 -
【转载】c++中set的用法;我觉得很详细了,改到窒息
建议看原链接:https://blog.csdn.net/Strawberry_595/article/details/811885091.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和se...转载 2019-09-03 12:09:29 · 155 阅读 · 0 评论 -
【转载】C++ 顺序容器基础知识总结
感谢原作者分享,建议查看原贴https://www.cnblogs.com/QG-whz/p/5152963.html阅读目录0.前言 1.容器概论 2.std::array 2.1.底层数据结构 2.2.内存分配策略 2.3.array的优势在哪 3.forward_list 3.1.底层数据结构 3.2.forward_list特殊之一:forward_...转载 2019-09-06 12:25:33 · 119 阅读 · 0 评论 -
【转载】【C++ STL学习之三】容器deque深入学习
感谢原作者分享,建议查看原贴 https://blog.csdn.net/xiajun07061225/article/details/7442816C++ STL容器deque和vector很类似,也是采用动态数组来管理元素。使用deque之前需包含头文件:#include <deque>它是定义在命名空间std内的一个class template:templat...转载 2019-09-06 17:26:18 · 101 阅读 · 0 评论 -
【转载】C++机试STL、树、图用法最全总结
感谢原作者分享,原链接地址:https://xuanxuanblingbling.github.io/life/study/2019/03/20/STL/简述STL底层说明C++ STL 的实现:容器 实现vector 底层数据结构为数组 ,支持快速随机访问list 底层数据结构为双向链表,支持快速增删deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL...转载 2019-09-09 15:19:34 · 1472 阅读 · 0 评论 -
【转载】STL迭代器iterator和指针的区别总结
指针和iterator都支持与整数进行+,-运算,而且其含义都是从当前位置向前或者向后移动n个位置 指针和iterator都支持减法运算,指针-指针得到的是两个指针之间的距离,迭代器-迭代器得到的是两个迭代器之间的距离 通过指针或者iterator都能够修改其指向的元素通过上面这几点看,两者真的很像,但是两者也有着下面的几个不同地方 cout操作符可以直...转载 2019-08-28 15:34:47 · 665 阅读 · 0 评论