首页 > 其他分享 >链表

链表

时间:2023-04-15 18:58:59浏览次数:26  
标签:容器 set 迭代 insert 链表 排序

list链表:STL中的链表是双向循环链表

迭代器不支持随机访问

包括数据域和指针域

构造:默认、区间、拷贝、n个elem

赋值:重载=、区间,n个elem

交换:swap();

大小:resize();

插入和删除:remove(); insert(); erase();

数据存取:无法使用[]和at,  可以使用front();back();

不支持随机访问的迭代器,不可以使用标准算法

反排:reverse();

 

queue:队列容器,先进先出

stack:栈,先进后出

vector:单端数组

动态扩展:开辟新空间

迭代器支持随机访问

deque:双端数组

内部有中控器,中控器中有地址

缓冲区中放内容

迭代器支持随机访问

set容器

插入时会自动排序

关联式容器,底层结构是二叉树

set不允许有重复元素

multiset允许有重复的元素

插入用insert();

set不能重置大小

insert()返回的是pair对组的形式,而multiset返回的是迭代器

通过仿函数指定函数的排序规则(仿函数后面+const)

对于自定类型,例如Person,必须指定排序规则(仿函数后面+const)

pair<string,int>p对组

map容器

所有容器都是pair

第一个元素为键值,第二个元素为实值

所有元素会根据键值自动排序

关联式容器,底层结构是二叉树

find要用迭代器接收

multimap<int,Person>::iterator pos=m.find(CEHUA);//返回的是起始位置
int count = m.count(CEHUA);//统计数量
int index = 0;
for (; pos != m.end() && index < count; pos++, index++)
{
cout << "员工姓名: " << pos->second.m_Name << " 薪资为; " << pos->second.m_Salary << endl;
}

 

标签:容器,set,迭代,insert,链表,排序
From: https://www.cnblogs.com/gaishuobulao/p/17304576.html

相关文章

  • 环形链表_相交链表_多数元素(java语言)
    环形链表力扣141题问题:思路:创建hashset,把链表的每个节点放到集合中,在放入的过程中检查这个节点是否已经存在,存在则证明存在环。代码实现:publicclassSolution{publicbooleanhasCycle(ListNodehead){Set<ListNode>set=newHashSet<>();whi......
  • #yyds干货盘点# LeetCode程序员面试金典:K 个一组翻转链表
    题目:给你链表的头节点head,每 k 个节点一组进行翻转,请你返回修改后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例1:输入:head=[1,......
  • 23-4-14--链表--银行排队问题之单队列多窗口服务
    假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统......
  • EF 多个链表查询
      查询格式如下:varresult=(frompinPackagejoinqinPackageLocationPricesonp.Idequalsq.PackageIdintopqfromrinpq.DefaultIfEmpty()selectnew{p,r}).ToList(); ......
  • 链表
    概述链表是一种通过指针串联在一起的线性结构链表在内存中的存储形式链表中的节点在内存中不是连续分布的,而是散乱分布在内存中的某地址上链表有节点组成,每个节点又分成两个部分:1)数据域(data)2)指针域数据域:存放数据指针域:存放指针,指向节点头节点(head)......
  • #yyds干货盘点# LeetCode程序员面试金典:两两交换链表中的节点
    题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]代码实现:classSolution{publicListN......
  • 链表应用 II
    目录链表应用II应用2:Leetcode.25题目分析代码实现链表应用II应用2:Leetcode.25题目25.K个一组翻转链表输入:\(head=[1,2,3,4,5]\),\(k=2\)输出:\([2,1,4,3,5]\)分析这里,我们以前面题目中的用例,来说明算法的步骤。为了避免讨论边界条件,这里,我们使用一个\(dummy\)......
  • 两个链表相交问题
    给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交: 题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构。题目链接链表相交classSolutio......
  • 四种语言刷算法之相交链表
    力扣160. 相交链表1、C/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*getIntersectionNode(structListNode*headA,structListNode*headB){if(headA==NULL||headB==NU......
  • 约瑟夫环问题---&解题方法 静态单链表&一维数组
      importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intn=input.nextInt();intm=input.nextInt();int[]ant=newint[150];for(int......