C++ Reference: Standard C++ Library reference: Containers: map: map: operator=

news2024/10/1 19:34:05

C++官网参考链接:https://cplusplus.com/reference/map/map/operator=/

公有成员函数
<map>
std::map::operator=
C++98
copy (1)    
map& operator= (const map& x);
C++11
copy (1)    
map& operator= (const map& x);
move (2)    
map& operator= (map&& x);
initializer list (3)    
map& operator= (initializer_list<value_type> il);
复制容器内容
将新内容分配给容器,替换其当前内容。
C++98
将x中的所有元素复制到容器中,并相应地更改其size。
容器保留其当前allocator(current allocator),该allocator用于在需要时分配额外的存储空间。
C++11
复制赋值操作(1)将x中的所有元素复制到容器中(x保留其内容)。
移动赋值(2)将x的元素移动到容器中(x保持未指定但有效的状态)。
初始化器列表赋值(3)将il的元素复制到容器中。
新的容器的size与调用前x(或il)的size相同。
容器保留其当前的allocator(current allocator),除非allocator traits指示x的allocator应该传播(propagate)。如果存储需求发生变化,则使用该allocator(通过其traits)进行allocate或deallocate,如果需要,则construct或destroy元素。

调用之前存储在容器中的元素要么被赋值,要么被销毁。

形参 
x
一个相同类型的map对象(即具有相同的模板形参:key、T、Compare和Alloc)。
il 
一个initializer_list对象。编译器将从初始化器列表声明器自动构造此类对象。
成员类型value_type是容器中元素的类型,在map中定义为pair<const key_type, mapped_type>的别名(参见map成员类型(map member types))。

返回值
*this。

用例
// assignment operator with maps
#include <iostream>
#include <map>

int main ()
{
  std::map<char,int> first;
  std::map<char,int> second;

  first['x']=8;
  first['y']=16;
  first['z']=32;

  second=first;                // second now contains 3 ints
  first=std::map<char,int>();  // and first is now empty

  std::cout << "Size of first: " << first.size() << '\n';
  std::cout << "Size of second: " << second.size() << '\n';
  return 0;
}
输出:

复杂度
对于复制赋值(1):大小(销毁,复制)的线性。
对于移动赋值(2):当前容器的size(销毁)中的线性*。 
对于初始化器列表赋值(3):最多达到大小(销毁,移动赋值)中的对数---如果il已经排序,则为线性。
*如果allocator不传播(propagate),则会增加赋值的复杂性。

iterator的有效性
与此容器相关的所有iterators、references和pointers都将失效。
在移动赋值操作中,指向x中的元素的iterators、pointers和references也会失效。

数据竞争
所有复制的元素都被访问。
移动赋值(2)修改x。
容器及其所有元素都被修改。

异常安全
基本保证:如果抛出异常,则容器处于有效状态。
如果元素结构的适当实参不支持allocator_traits::construct,或者value_type不能复制可赋值(copy assignable)(或对于(2)不能移动可赋值(move assignable)),则会导致未定义行为。 

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

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

相关文章

Linux学习04-文件权限与目录配置

1 用户和用户组的概念 Linux中的用户划分很有意义。分为用户、用户组与非本用户组。模式类似于学校的机房。 2 文件权限 使用ls -al查看文件权限&#xff1a; [rootstudy ~]# ls -al -rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg [ 1…

vue3表单输入绑定 v-model

vue3表单输入绑定 v-model 一、基本使用 1.1、v-model 使用 <template><input type"text" v-model"msg"/><h2>{{msg}}</h2> </template><script setup> import { ref} from vue const msgref("Hello World&quo…

Vue中路由守卫的具体应用

目录 &#x1f53d; 概述 1. 全局守卫——全局钩子函数 1.1 全局前置守卫——beforeEach 1.2 全局后置路由守卫 1.3 整合 2. 路由独享的守卫——路由独享的钩子函数 3.组件内的守卫——组件内的钩子函数 &#x1f53d; 参考资料 Vue-Router导航&#xff08;路由&#x…

卫龙上市酿成资本惨剧:CPE损失上亿美元 高瓴浮亏5000万美元

雷帝网 雷建平 12月16日本是年度最受期待的新消费企业上市&#xff0c;却酿成资本惨剧。“辣条一哥”卫龙&#xff08;股票代码为&#xff1a;“09985”&#xff09;昨日在港交所上市&#xff0c;发行价为10.56港元&#xff0c;募资净额为8.99亿港元&#xff1b;卫龙食品首日开…

大数据中的数据安全

数据安全体系全貌 在数据仓库平台中&#xff0c;对应数据的请求必须严格尊属数据安全体系 数据使用安全 数据安全 认证 授权 认证主要是对用户的身份确认&#xff0c;比如最简单的用户的登录需要账户和密码&#xff1b;像你登录Mysql需要输出用户名和密码。比如大数据中使用…

爱科赛博冲刺科创板:拟募资3.8亿 陕西集成电路与达晨是股东

雷递网 雷建平 12月16日西安爱科赛博电气股份有限公司&#xff08;简称&#xff1a;“爱科赛博”&#xff09;日前递交招股书&#xff0c;准备在科创板上市。爱科赛博计划募资3.8亿。其中&#xff0c;1.2亿用于西安爱科赛博电气股份有限公司精密特种电源产业化建设项目&#xf…

2022.12.5-12.11 AI行业周刊(第127期):一起做时间的朋友

最近沸沸扬扬的就是核酸疫情的事情&#xff0c;突然之间&#xff0c;一下子全国都放开了&#xff0c;很不适应。 大宝在上幼儿园中班&#xff0c;上上个星期&#xff0c;学校的政策&#xff0c;还是没有核酸证明不得入校。 而上周末发的通知&#xff0c;已经是不得在外做核酸…

AIGC音乐生成#riff + diffusion 以生成频谱图图像来转换为音乐 | 无界日报 第2期

小杜无界日报第2期&#xff0c;本期头条 - stable diffusion 微调模型 riff diffusion 以生成频谱图图像来转换为音乐。无界日报2022.12.16第02期- 头条 -riff diffusion#AIGC# #工具#riff diffusion 是 stable diffusion 的微调模型&#xff0c;以生成频谱图图像来转换为音…

(文章复现)8.基于共享储能电站的工业用户日前优化经济调度

目录 复现文章&#xff1a; 摘要&#xff1a; 部分程序&#xff1a; 输出结果&#xff1a; 15r 复现文章&#xff1a; 基于共享储能电站的工业用户日前优化经济调度——李淋&#xff08;电力建设2020&#xff09; 摘要&#xff1a; 文章提出一种基于共享储能电站的工业…

【计算机网络】:2-物理层

物理层 物理层考虑的是怎样才能在各种计算机的传输媒体上传输数据比特流&#xff0c;主要涉及到的领域包括信号传播、电信系统等&#xff0c;与计算机软件相关较少 1.物理层介绍 物理层为数据链路层屏蔽了各种传输媒体的差异&#xff0c;使数据链路层 只需要考虑本层 的的协…

《Linux内核源码分析》课程笔记

《Linux内核源码分析》课程笔记漏洞安全与虚拟内存CPU缓存技术malloc系统调用中断锁与IPC机制MMU内存页回收内核设备驱动程序内核启动流程这个课好烂&#xff0c;就是打广告用的。出现的老师的英语听着难受。 漏洞安全与虚拟内存 CPU架构&#xff1a;1、X86架构&#xff0c;采…

绿盟SecXOps安全智能分析技术白皮书

数据共享 定义内涵 数据共享 是指在多个用户或多个程序之间遵循一定规则共同享用数据&#xff0c;并进行各种操作、运算和分析的一种技术。数据共享包括数据发布、接口、交换等内容。 技术背景 随着数字经济成为拉动全球经济增长的新引擎&#xff0c;大数据成为经济中重要的…

微服务框架 SpringCloud微服务架构 多级缓存 48 多级缓存 48.7 Redis 缓存预热

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存48 多级缓存48.7 Redis 缓存预热48.7.1 添加Redis 缓存的需求48.7.2 冷启动和缓存预热48.7.3 缓存预热…

高通平台开发系列讲解(DSI篇)DSI函数的内部逻辑

文章目录 一、dsi_start_data_call函数二、dsi_get_pkt_stats函数三、dsi_stop_data_call函数四、回调流程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢DSI层最上层函数位于dsi_netctrl.c中,该.c位于apps_proc/data/dsi_netctrl目录中,现对部分主要函数的调用流程进…

大数据工程师的“卿卿日常”

大数据工程师在日常生活中做什么&#xff1f; 长按关注《Java学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 扫码关注《Java学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 什么是数据工程&#xff1f; 数据工程是当今世界最关键和最基础的技能…

25岁,一个汽修工人转行 Python 的真实事迹!

前言 我遇到一个汽修工人&#xff0c;他没有事喜欢上网&#xff0c;看新闻&#xff0c;对于编程很有兴趣&#xff0c;也想过转行&#xff0c;但是不知道学习什么好. 如何知道 Python. 我和这位朋友的家很近&#xff0c;在过年的时候&#xff0c;我们聊过 (20 出头), 我了解他是…

在vue中,为什么不能用index作为key?

啊&#xff1f;不是吧&#xff0c;在vue中&#xff0c;不能使用index作为key呢&#xff1f;使用index作为key又好理解又方便&#xff0c;为什么不能使用呢&#xff1f;看文章就知道啦~. 一、key的作用是什么&#xff1f; key的作用众所周知&#xff0c;看一个demo就知道&…

【FFmpeg视频播放器开发】解封装解码流程、常用API和结构体简介(一)

一、前言 在正式编写 FFmpeg 播放器前&#xff0c;我们需要先简单了解下所要用到的 FFmpeg 库、播放与解码流程、函数和相关结构体。 二、FFmpeg 库简介 库介绍avcodec音视频编解码核心库avformat音视频容器格式的封装和解析avutil核心工具库swscal图像格式转换的模块swresa…

零基础如何学好Python?Python有哪些必须学的知识?

跟几个IT界的大佬提起Python&#xff0c;他们说零基础学好Python很简单&#xff0c;Python进阶需要花费些气力。那么零基础如何学好Python&#xff1f;Python有哪些必须学的知识&#xff1f;学习的策略技巧有哪些&#xff1f;今天小编整理的这篇文章将会给你启发。 Python上手…

vulnhub靶机DriftingBlue6

靶机下载地址DriftingBlues: 6 ~ VulnHub kali ip&#xff1a;192.168.174.128 靶机ip&#xff1a; 192.168.174.140 首先进行ip地址发现 进行端口扫描 这里进行目录扫描&#xff0c;我习惯性使用Linux里面的gobuster和Windows上的dirsearch一起进行扫描。 python dirsearc…