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

news2024/11/17 3:26:52

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; //10
	cout<<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.coloradmin.cn/o/807399.html

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

相关文章

红黑树与平衡二叉树

文章目录 前言一、平衡二叉树二、红黑树区别 前言 数据库的底层用到了多种树结构&#xff0c;这里简单记录一下红黑树与平衡二叉树。 一、平衡二叉树 满足二叉树。任何节点的两个子树的高度最大差为1。如果对平衡二叉树进行删除和新增&#xff0c;那么会破坏平衡&#xff0c;…

Jmix 如何将外部数据直接显示在界面?

企业级应用中&#xff0c;通常一个业务系统并不是孤立存在的&#xff0c;而是需要与企业、部门或者是外部的已有系统进行集成。一般而言&#xff0c;系统集成的数据和接口交互方式通常有以下几种&#xff1a; 文件传输&#xff1a;通过文件传输的方式将数据传递给其他系统&…

C++设计模式笔记

设计模式 如何解决复杂性&#xff1f; 分解 核心思想&#xff1a;分而治之&#xff0c;将大问题分解为多个小问题&#xff0c;将复杂问题分解为多个简单的问题。 抽象 核心思想&#xff1a;从高层次角度讲&#xff0c;人们处理复杂性有一个通用的技术&#xff0c;及抽象。…

现在运动耳机什么牌子的好用、最好的运动耳机推荐

对于注重身体健康的小伙伴来说&#xff0c;每周必然都少不了有规律的运动&#xff0c;而运动的时候耳边没有音乐的陪伴总是稍显枯燥无味&#xff0c;很难让人提起干劲来。有些小伙伴觉得运动的时候戴着耳机&#xff0c;稍微跳动几下耳机就开始松动&#xff0c;随时都要分心提防…

【LeetCode】124.二叉树中的最大路径和

题目 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root &…

SQLserver 查询数据库表结构和说明简介信息

DECLARE tableName NVARCHAR(MAX ) SET tableName‘TK_Cargoowner’;–表名!!! SELECT CASE WHEN col.colorder 1 THEN obj.name ELSE ‘’ END AS 表名, col.colorder AS 序号 , col.name AS 列名 , ISNULL(ep.[value], ‘’) AS 列说明 , t.name AS 数据类型 , col.length A…

第十章:queue类

系列文章目录 文章目录 系列文章目录前言queue的介绍queue的使用成员函数使用queue 总结 前言 queue是容器适配器&#xff0c;底层封装了STL容器。 queue的介绍 queue的文档介绍 队列是一种容器适配器&#xff0c;专门用于在FIFO上下文(先进先出)中操作&#xff0c;其中从容器…

微信小程序实现日历功能、日历转换插件、calendar

文章目录 演示htmlJavaScript 演示 效果图 微信小程序实现交互 html <view wx:if"{{calendarArr.length}}"><view class"height_786 df_fdc_aic"><view class"grid_c7_104"><view class"font_weight_800 text_align…

多分类问题-Softmax Classifier分类器

概率分布&#xff1a;属于每一个类别的概率总和为0&#xff0c;且都>0&#xff0c;n组类别需要n-1个参数就能算出结果 数据预处理 loss函数 crossentropyloss()函数 CrossEntropyLoss <> LogSoftmax NLLLoss。也就是说使用CrossEntropyLoss最后一层(线性层)是不需要做…

Pytorch深度学习-----神经网络的卷积操作

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用&#xff08;ToTensor&#xff0c;Normalize&#xff0c;Resize &#xff0c;Co…

软件外包开发测试管理工具

测试是软件工程中非常重要的一个环节&#xff0c;在上线前必须需要经过严格的测试才能确保上线后软件系统长时间运行。有大量的软件开发和测试管理工具&#xff0c;每一个工具都有自己的特点&#xff0c;今天和大家分享一些常见的工具&#xff0c;希望对大家有所帮助。北京木奇…

STM32 LWIP UDP 一对一 一对多发送

STM32 LWIP UDP通信 前言设置 IP 地址UDP函数配置实验结果单播发送&#xff0c;一对一发送广播发送&#xff0c;一对多发送 可能遇到的问题总结 前言 之前没有接触过网络的通信&#xff0c;工作需要 UDP 接收和发送通信&#xff0c;在网上没有找到一对一、一对多的相关例程&am…

Visual C++中的虚函数和纯虚函数(以外观设计模式为例)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来说说Visual C中的虚函数和纯虚函数。该系列帖子全部使用我本人自创的对比学习法。也就是当C学不下去的时候&#xff0c;就用JAVA实现同样的代码&#xff0c;然后再用对比的方法把C学会。 直接说虚函数…

Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)

星光下的赶路人star的个人主页 毅力是永久的享受 文章目录 1、NoSQL1.1 NoSQL数据库1.1.1 NoSQL是什么1.1.2 NoSQL的特点1.1.3 NoSQL的适用场景1.1.4 NoSQL的不适场景 1.2 NoSQL家族 2、Redis简介2.1 Redis官网2.2 Redis是什么2.3 Redis的应用场景2.3.1 配合关系型数据库做高速…

java复盘

这一题中外部类是Outer。外部类不能直接使用内部类的成员变量和方法&#xff0c;需要内部类的对象来访问他的成员变量和方法。所以该题只是new了一个外部类&#xff0c;内部类无法访问&#xff0c;所以没有输出。 wait后进入等待锁定池&#xff0c;只有针对此对象发出notify或者…

TCP网络通信编程之字节流

目录 【TCP字节流编程】 // 网络编程中&#xff0c;一定是server端先运行 【案例1】 【思路分析】 【客户端代码】 【服务端代码】 【结果展示】 【案例2】 【题目描述】 【注意事项】 【服务端代码】 【客户端代码】 【代码结果】 【TCP字节流编程】 // 网络编程中&a…

list与流迭代器stream_iterator

运行代码&#xff1a; //list与流迭代器 #include"std_lib_facilities.h" //声明Item类 struct Item {string name;int iid;double value;Item():name(" "),iid(0),value(0.0){}Item(string ss,int ii,double vv):name(ss),iid(ii),value(vv){}friend ist…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 26 日论文合集)

文章目录 一、分割|语义相关(7篇)1.1 Learning Transferable Object-Centric Diffeomorphic Transformations for Data Augmentation in Medical Image Segmentation1.2 Optical Flow boosts Unsupervised Localization and Segmentation1.3 Spectrum-guided Multi-granularity…

latex论文----写作代码

一般来说论文机构会给定latex模板代码&#xff0c;我们只需要知道怎么写就行&#xff0c;格式机构都给你调好了 1 各类标题 section是最大的标题&#xff0c;后边每一级小标题&#xff0c;都在前边加个sub就行 \section{Method} \subsection{Dataset} \subsubsection{Dataset…