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,一经查实,立即删除!

相关文章

MySQL - 2、数据操作

0、创建测试表&#xff1a; CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT,score FLOAT );1、INSERT 插入数据&#xff1a; INSERT INTO students (name, age, score) VALUES(lfsun1, 25, 85.5),(lfsun2, 22, 78.3),(lfsun3,…

HTML5 特性

HTML5 特性 1. 语义化标签 <header>&#xff1a;表示网页或某个区域的页眉部分&#xff0c;通常包含网站的标志、导航菜单等内容。<nav>&#xff1a;表示导航区域&#xff0c;用于包含网站的主要导航链接。<main>&#xff1a;表示网页的主要内容区域&#…

【swift 代码规范】

List item 代码架构分层 一、服务层 1.数据 2.网络请求 3.缓存处理 二、业务层 三、表现层 代码分块 // MARK: - Member Variables// MARK: - Sturct & Lazy Properties// MARK: - Class LifeCycle// MARK: - Class PrivateMethod// MARK: - Class PublicMethod// …

Angular中组件设计需要注意什么?

在 Angular 中设计组件时&#xff0c;有几个重要的方面需要注意。以下是一些建议&#xff1a; 1、单一职责原则&#xff1a;确保每个组件只负责一个明确定义的任务。这有助于保持组件简单、可维护&#xff0c;并且易于重用。 2、组件通信&#xff1a;了解组件之间的通信方式。…

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

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

vue2企业级项目(七)

vue2企业级项目&#xff08;七&#xff09; 组件封装 src目录下创建components/index.js const components require.context("./modules", true, /index\.js$/);export default {install: (Vue) > {components.keys().forEach((key) > {let component compo…

汇编调用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…

逻辑回归分析实战(根据鸢尾花的性质预测鸢尾花类别)

紧接着上过一个线性回归模型&#xff08;一元线性回归模型实战&#xff09; 一元线性回归模型和逻辑回归模型是统计学中常见的两种回归模型&#xff0c;它们有以下几点不同之处&#xff1a; 1. 目标变量类型&#xff1a;一元线性回归模型适用于连续型目标变量&#xff0c;即预测…

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;支持二次开发…

【Opencv】视频跟踪算法KCF

目录 KCF算法简介opencv实现代码copencv实现代码python KCF算法简介 KCF&#xff08;Kernelized Correlation Filter&#xff09;是一种基于核相关滤波器的目标跟踪算法。它通过学习目标的外观特征和使用核相关滤波器进行目标定位。KCF属于传统算法的单目标跟踪器。下面是对KC…

【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 …