c++学习(c++11)[24]

c++11

在这里插入图片描述

列表初始化

#include"iostream"
using namepace std;int main()
{int x1 = 1;int x2 = { 2 };int x3  { 2 };vector<int> v1 = {1,2,3,4,5,6};vector<int> v1 {1,2,3,4,5,6};list<int> lt1 = {1,2,3,4,5,6};list<int> lt1 {1,2,3,4,5,6};auto x = {1,2,3,4,5,6};cout<<typeid(x).name()<<endl;  //class std::initializer_list<int>return 0;
}

在这里插入图片描述
在这里插入图片描述

decltype

typeid拿到只是类型的字符串,不能再用这个去定义对象什么的

int mian()
{int x = 10;//typeid(x).name() y = 20;decltype(x) y1 = 10.22;  //推导类型 并可定义auto y2 = 10.3;cout<<y1<<endl; //10cout<<y2<<endl; //10.3
}

nullptr

在这里插入图片描述

array

静态vector
在这里插入图片描述
array调用的是一个函数
实际情况:array用的很少,一方面大家用c数组用惯了。另一方面不如vector+resize(在堆上)数组和array在栈上。

forward_list

forward_list是C++标准库中的一个单向链表容器,它是C++11引入的。与list容器相比,forward_list只能单向遍历,不能进行双向遍历和逆序访问。由于只有单向指针,所以forward_list的内存占用比list更小。

forward_list的特点和使用方法如下:

  1. 单向链表:forward_list是一个单向链表容器,每个节点只包含一个指向下一个节点的指针,没有指向前一个节点的指针。

  2. 插入和删除:forward_list支持在链表的任意位置进行插入和删除操作,时间复杂度为O(1)。可以使用insert_afteremplace_aftererase_after等成员函数来操作链表。

  3. 遍历和访问:可以使用迭代器来遍历forward_list,从头节点开始依次访问每个节点。可以使用beginend函数获取链表的起始和结束迭代器,使用++操作符来移动迭代器。

  4. 搜索和查找:由于forward_list只能单向遍历,所以搜索和查找操作比较低效。可以使用find函数来查找指定元素,时间复杂度为O(n)。

  5. 内存占用:由于forward_list只包含一个指针,所以它的内存占用比list更小。但由于没有指向前一个节点的指针,所以无法进行双向遍历和逆序访问。

forward_list适用于需要频繁进行插入和删除操作的场景,尤其是在内存占用有限的情况下。但由于只能单向遍历,所以在需要频繁搜索和查找的场景下效率较低。在选择使用forward_list时,需要根据具体需求权衡其优缺点。
在这里插入图片描述
对于C++标准库中的forward_list容器,IDE或编辑器通常不会提供直接的右键引入参数插入功能。这是因为forward_list容器的特性决定了其插入操作的复杂性,无法简单地通过右键点击来自动插入参数。

forward_list是一个单向链表容器,插入操作涉及到修改指针和节点的链接关系,而不仅仅是简单的在容器中插入一个元素。因此,如果要在forward_list的函数或方法中插入参数,通常需要手动进行以下步骤:

  1. 在函数或方法的定义处,增加一个参数,用于接收要插入的值或元素。
  2. 在函数或方法的实现中,使用forward_list的插入操作(如insert_after)将新元素插入到合适的位置。

以下是一个示例代码,展示了如何在forward_list的函数中手动插入参数:

#include <iostream>
#include <forward_list>void insertElement(std::forward_list<int>& flist, int value) {// 在函数定义处增加一个参数flist.insert_after(flist.begin(), value);
}int main() {std::forward_list<int> flist = {1, 2, 3, 4, 5};// 调用函数插入元素insertElement(flist, 10);// 输出容器中的元素for (auto it = flist.begin(); it != flist.end(); ++it) {std::cout << *it << " ";}return 0;
}

在上述示例中,我们定义了一个insertElement函数,该函数接受一个forward_list的引用和一个要插入的值作为参数。在函数的实现中,我们使用insert_after函数将新元素插入到链表的第一个位置之后。

需要注意的是,由于forward_list是单向链表,无法直接在任意位置插入元素。因此,我们只能在特定位置之后插入新元素,这在某些场景下可能需要额外的操作来确定插入的位置。

总结来说,对于forward_list容器,通常需要手动进行插入操作,而不是依赖于IDE或编辑器提供的右键引入参数插入功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/12598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python(四十九)获取列表指定元素的索引

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

汇编调用C语言定义的全局变量

在threadx移植中&#xff0c;系统的systick通过了宏定义的方式定义&#xff0c;很难对接库函数的时钟频率&#xff0c;不太利于进行维护 所以在C文件中自己定义了一个systick_Div的变量&#xff0c;通过宏定义方式设定systick的时钟频率 在汇编下要加载这个systick分频系数 …

UDS诊断协议

UDS本质上是一系列服务的集合&#xff0c;包含6大类&#xff0c;共26种。每种服务都有独立的ID&#xff0c;即SID。 请求 SID(1Byte) 参数 SID(1Byte) Sub-function(1Byte) 参数 SID DID(2Bytes) 响应 肯定响应 SID0x40(1Byte) Sub-function(根据请求是否存在) 参数…

Windows数据类型LPSTR学习

Windows在C语言的基础之上又定义了一些Windows下的数据类型&#xff1b;下面学习一下LPSTR&#xff1b; LPSTR和LPWSTR是Win32和VC所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的32位ANSI字符数组指针&#xff0c;而LPWSTR是一个指向以NULL结尾的64…

2023年基准Kubernetes报告:6个K8s可靠性失误

云计算日益成为组织构建应用程序和服务的首选目的地。尽管一年来经济不确定性的头条新闻主要集中在通货膨胀增长和银行动荡方面&#xff0c;但大多数组织预计今年的云使用和支出将与计划的相同&#xff08;45%&#xff09;&#xff0c;或高于计划的&#xff08;45%&#xff09;…

大数据Flink(五十三):Flink流处理特性、发展历史以及Flink的优势

文章目录 Flink流处理特性、发展历史以及Flink的优势 一、Flink流处理特性 二、发展历史

opencv-28 自适应阈值处理-cv2.adaptiveThreshold()

什么是自适应阈值处理? 对于色彩均衡的图像&#xff0c;直接使用一个阈值就能完成对图像的阈值化处理。但是&#xff0c;有时图像的色彩是不均衡的&#xff0c;此时如果只使用一个阈值&#xff0c;就无法得到清晰有效的阈值分割结果图像。 有一种改进的阈值处理技术&#xff…

五、控制流(2)

本章概要 returnbreak 和 continue臭名昭著的 gotoswitchswitch 字符串 return 在 Java 中有几个关键字代表无条件分支&#xff0c;这意味无需任何测试即可发生。这些关键字包括 return&#xff0c;break&#xff0c;continue 和跳转到带标签语句的方法&#xff0c;类似于其…

不管如何吐槽,购买iPhone的用户依然义无反顾,苹果继续增长

市调机构IDC公布的二季度数据显示&#xff0c;苹果成为前五名之中除华为之外第二家取得增长的手机品牌&#xff0c;而其他国产手机品牌的出货量都在下滑&#xff0c;显示出国内的消费者仍然在热烈追捧iPhone。 二季度苹果在国内市场的手机出货量同比增长6%&#xff0c;虽然增速…

Android Studio下载及安装和Gradle的配置

文章目录 下载安装修改Sdk的位置创建项目修改Gradle的位置查看AS版本工具栏--View项工具栏--Build下的功能说明Build Variants视图说明下载模拟器&#xff08;avd&#xff09;/安卓虚拟设备屏幕熄灭功能关闭虚拟设备功能删除自己开发的应用软件将开发的应用运行到虚拟设备上。 …

从分片传输到并行传输之大文件传输加速技术

随着大文件的传输需求越来越多&#xff0c;传输过程中也会遇到很多困难&#xff0c;比如传输速度慢、文件安全性低等。为了克服这些困难&#xff0c;探讨各种大文件传输加速技术。其中&#xff0c;分片传输和并行传输是两种比较常见的技术&#xff0c;下面将对它们进行详细说明…

Java版知识付费源码 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台

提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含&#xff1a;录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署&#xff0c;免费售后&#xff0c;专业技术指导&#xff0c;支持PC、APP、H5、小程序多终端同步&#xff0c;支持二次开发…

【Java】Java多线程编程基础

文章目录 1. 进程与线程1.1 进程与线程的基本认识1.1.1 进程&#xff08;Process&#xff09;1.1.2 线程&#xff08;Thread&#xff09; 1.2 为什么会有线程1.2.1 以看视频为例 2. 多线程实现2.1 Thread类实现多线程2.2 Runnable接口实现多线程2.3 Callable接口实现多线程2.3 …

CTF线下赛AWD知识点【持续完善ing】

文章目录 CTF线下赛AWD知识点AWD规则前期准备SSH登录口令登录密钥登录 改密码SSH密码修改mysql密码修改 备份数据备份目录备份数据库 查找后门 自动提交flag防御思路基础查杀寻找最近20分钟修改过的文件寻找行数最短的文件关键字查杀查找命令执行函数 文件监控杀不死马0x01.杀进…

Grafana - TDEngine搭建数据监测报警系统

TDengine 与开源数据可视化系统 Grafana 快速集成搭建数据监测报警系统 一、介绍二、前置条件三、Grafana 安装及配置3.1 下载3.2 安装3.2.1 windows安装 - 图形界面3.2.2 linux安装 - 安装脚本 四、Grafana的TDEngine配置及使用4.1 登录4.2 安装 Grafana Plugin 并配置数据源4…

学习笔记|大模型优质Prompt开发与应用课(二)|第一节:大模型应用密码—Prompt的一千种打开方式

文章目录 第一节:大模型应用密码—Prompt的一千种打开方式01你可能听过一个小故事1910华盛顿纺织厂罢工事件 02 小问题:哪些场景会被提效类目一︰减少重复性工作的成本&#xff08;降本)例如∶做策划初稿、写JD、润色文案prompt生成结果prompt生成结果prompt生成结果promptprom…

NodeJs后端项目使用docker打包部署

docker安装看之前的文章 默认已经安装好docker并且配置没有问题 拉取项目 https://gitee.com/coder-msc/docker-node 本地跑一个看看 pnpm install pnpm start 本地访问 http://localhost:1301/getname?name%E5%93%88%E5%88%A9%E6%B3%A2%E7%89%B9项目整个上传服务器 查看…

简化Java单元测试数据

用EasyModeling简化Java单元测试 EasyModeling 是我在2021年圣诞假期期间开发的一个 Java 注解处理器&#xff0c;采用 Apache-2.0 开源协议。它可以帮助 Java 单元测试的编写者快速构造用于测试的数据模型实例&#xff0c;简化 Java 项目在单元测试中准备测试数据的工作&…

老胡的周刊(第101期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 ollama[2] 你可以下载 Ollama 在本地运行 Ll…

链表基础知识

一、什么是链表 链表是一种物理存储结构上非连续&#xff0c;非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构是多式多样的&#xff0c;当时通常用的也就是两种&#xff1a; &#xff08;1&#xff09;第一种是无头非循环单向…