容器
张荣华_csdn
这个作者很懒,什么都没留下…
展开
-
Contains Duplicate III
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i] and nums[j] is at most t and the absolute difference ...原创 2018-06-07 08:54:38 · 134 阅读 · 0 评论 -
47. 全排列 II
给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]class Solution {public: vector<vector<int>> permuteUnique(vector<int>& nums) { ...原创 2018-09-02 20:31:46 · 244 阅读 · 0 评论 -
priority_queue
priority_queue 优先队列,其底层是用堆来实现的。在优先队列中,队首元素一定是当前队列中优先级最高的那一个。 在优先队列中,没有 front() 函数与 back() 函数,而只能通过 top() 函数来访问队首元素(也可称为堆顶元素),也就是优先级最高的元素。 第二个参数( vector ),是来承载底层数据结构堆的容器,第三个参数( less ),则是一个比较类,less 表示...原创 2018-08-18 12:23:50 · 344 阅读 · 0 评论 -
整形数组合并
题目描述题目标题:将两个整型数组按照升序合并,并且过滤掉重复数组元素[注: 题目更新了。输出之后有换行]详细描述:接口说明原型:voidCombineBySort(int* pArray1,intiArray1Num,int* pArray2,intiArray2Num,int* pOutputArray,int* iOutputNum);输入参数:int* pAr...原创 2018-08-13 12:37:23 · 383 阅读 · 0 评论 -
Contains Duplicate III
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference betweennums[i] and nums[j] is at most t and the absolute difference b...原创 2018-08-06 12:31:41 · 112 阅读 · 0 评论 -
vector中的find用法
注意find不属于vector的成员,而存在于算法中,应加上头文件#include <algorithm>:#include <vector>#include <algorithm>#include <iostream>int main( ){ using namespace std; vector<int> ...原创 2018-08-04 00:09:35 · 6807 阅读 · 0 评论 -
clear与resize
vector的clear操作可以将vector的数据清空,但是vector的容量不会变化,即分配给vector的内存不会收回。vector<int> num={1,2,3,4,5};num.clear(); resize()的作用是改变vector中元素的数目。 vector<int> num={1,2,3,4,5};num.resize(0); ...原创 2018-08-03 00:04:21 · 3731 阅读 · 2 评论 -
reverse函数中的begin和end迭代器
#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){ string s = "123456789"; reverse(s.begin(), s.end()); cout << s << en...原创 2018-08-03 00:03:48 · 3863 阅读 · 0 评论 -
STL的基本组件
1.容器container容器是容纳、包含一组元素的对象。容器类库中包括7种基本容器:向量vector、双端队列deque、列表list、集合set、多重集合multiset、映射map和多重映射multimap。这7种容器可以分为两种基本类型:顺序容器和关联容器。顺序容器将一组具有相同类型的元素以严格的线性形式组织起来,向量、双端队列和列表容器就属于这一种。关联容器具有根据一组索引来快速提取...原创 2018-06-01 18:25:21 · 304 阅读 · 0 评论 -
vector函数里的pair用法
STL中map通过键-值的形式保证一一对应关系,而multimap则可以出现一对多的关系,这两种数据类型在存储数据时,会根据pair<>的first成员进行排序,不同的是前者将不会插入对first成员重复的结构,而后者可以。 而当我们我们只想存储pair对,不需要对其排序时,就可以用到vector,将pair对插入其中即可。下面就使用做一些简单说明: 声明vector:vec...原创 2018-06-06 08:16:49 · 6335 阅读 · 0 评论 -
简述STL中容器适配器的概念
STL中提供了三种容器适配器:栈适配器、队列适配器和优先队列适配器。在使用STL时。可以向使用普通的栈stack、队列queue、和优先队列priority_queue那样去操作数据。 栈的特征是后进先出,后入栈的元素先出栈,先入栈的元素后出栈,因此站适配器应该支持从栈顶添加删除元素以及访问元素的操作。容器vector、list和quque都满足栈操作的条件,因此都能作为栈适配器的底层容器...原创 2018-07-19 00:14:35 · 536 阅读 · 0 评论 -
关联容器
STL中常用的关联容器有四种:set、map、multiset、multimap。这四种容器中的元素都是按照键有序排列的,向容器中插入元素时会将元素插入到适当的位置,插入删除操作都不会破坏键的有序性。 关联容器中元素的键必须是可比较的。如果键是基本类型,可以直接使用,因为基本类型都是可比较的;如果键是自定义类型,则需要定义带有比较谓词的构造函数才能作为关联容器的类型参数。 map中保存着一系列...原创 2018-07-19 00:15:31 · 827 阅读 · 0 评论 -
迭代器失效问题
找出下面迭代器错误的使用方式:int main(){ vector<int> v1,v2; set<int> s1,s2; for(int i=0;i<10;i++){ v1.push_back(i); v2.push_back(i); s1.i...原创 2018-07-20 00:10:26 · 418 阅读 · 0 评论 -
容器适配器
每种容器都提供了一组接口,如果容器中的接口不能满足需求,那么重新编写容器还是改变我们的需求 应该构造一个容器接口到需求接口之间的转换器,称为容器适配器。 容器适配器将原容器进行了一层封装,底层基于普通容器,上层对外提供封装后的新接口,满足不同使用者的需求。常用的栈stack、队列deque、优先级队列priority_queue在STL中都有自己的容器适配器。 容器适配器对使用者是个黑盒,使...原创 2018-07-19 00:14:27 · 226 阅读 · 0 评论 -
简述deque容器的插入删除原理
双端队列deque是一种双向开口的存储空间分段连续的数据结构,每段数据空间内部是连续的,而每段数据空间则不一定连续。 初始状态下,双端队列中只有一段数据空间,中控器的第一个指针指向这段空间。在向deque插入和删除元素的过程中,会根据数据空间的状态,动态分配和释放空间,数据空间段的数量会发生变化。 如果无法像deque的队首插入更多的元素,表明首段数据空间已满,deque会申请一段新的数据空间...原创 2018-07-19 00:14:15 · 1433 阅读 · 0 评论 -
手动调整vector容器空间的方式
容器的reverse函数支持手工设置vector分配空间的大小。需要注意reverse不支持回收剩余空间,也就是无法通过reverse函数减小capacity的值,当capacity的值大于等于reverse函数的参数时,程序什么也不会做,因此只能通过reverse扩展空间。 但是容器中提供了shrink_to_fit函数回收全部剩余空间。调用shrink_to_fit函数后,size的值等于c...原创 2018-07-19 00:14:09 · 1259 阅读 · 0 评论 -
顺序容器(C++)
STL中提供的顺序容器包括:vector、list、deque、string。vector容器在堆空间中建立了一个一维数组,地址空间是连续的,支持快速随机访问。但是在vector中插入删除元素的效率较低,插入操作会导致插入位置及其后面的元素向后移动,删除元素和会导致删除位置之后的元素向前移动。在vector尾部插入删除元素最快,不需要移动任何元素;在头部插入删除元素最慢,需要移动所有元素。 ...原创 2018-07-19 00:14:01 · 218 阅读 · 0 评论 -
下厨房
题目描述牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。输入描述:每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述:输出一行一个数字表示完成所有料理需要多少种不同的材料。...原创 2018-07-22 00:10:43 · 236 阅读 · 0 评论 -
49. 字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"],原创 2018-09-02 20:40:40 · 197 阅读 · 0 评论