C++列表初始化

1.列表初始化

注意和初始化列表區分開來,在 C++ 98 中允許使用花括號對數組或者結構體元素進行統一的初始值設定。

struct Point
{int _x;int _y;
};int main()
{int array1[] = { 1, 2, 3, 4, 5 };int array2[5] = { 0 };Point p = { 1, 2 };return 0;
}

C++ 11 擴大了用花括號列表初始化的使用范圍,可以用于所有內置類型和用戶自定義類型。并且在使用列表初始化時,可以添加等號,也可以不添加。

struct Point
{int _x;int _y;
};
int main()
{int x1 = 1;int x2{ 2 };int array1[]{ 1, 2, 3, 4, 5 };int array2[5]{ 0 };Point p{ 1, 2 };//列表初始化也可用于 new 表達式中int* pa = new int[4]{ 0 };return 0;
}

并且期間還有可能發生構造調用。

int main()
{Date d1 { 2023, 5, 6 };//單純調用構造Date d2 = { 2012, 3, 10 };//構造加拷貝構造,有可能發生優化(如果構造函數加上 explicit 這句話就非法了)return 0;
}

那么使用列表初始化構造一個容器(比如:vectorlist)是怎么做到的呢?實際上,花括號內的常量數組會被識別為一個新的類類型:initializer_list

#include <iostream>
#include <initializer_list>
int main()
{auto il = { 1,2,3 };std::cout << typeid(il).name() << '\n';return 0;
}

并且該對象的數據在常量區存儲,無法使用迭代器修改內部的值。

2.容器的列表初始化接口

C++ 11 新增加了一些容器:arrayforward_listunordered_setunordered_map,并且增加了一些新方法,例如:容器都支持使用列表初始化的構造函數,這使得所有的容器可以更加方便設置初始值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168256.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168256.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168256.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyQt6庫和工具庫QTDesigner安裝與配置

鋒哥原創的PyQt6視頻教程&#xff1a; 2024版 PyQt6 Python桌面開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili2024版 PyQt6 Python桌面開發 視頻教程(無廢話版) 玩命更新中~共計12條視頻&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面開發 視頻教程(無廢話版…

c語言第七彈--掃雷小游戲!

今天做一個有趣的掃雷小游戲 現在正式開始設計。 思路&#xff1a;想要根本上實現必須擁有 實現函數的主體.c文件 頭文件.h 及頭文件實現.c。 頭文件.h #pragma once #include <stdio.h> #include <stdlib.h> #include <time.h> #define EASY_COUNT 10 #d…

【knife4j-spring-boot】Springboot + knife4j-spring-boot 整合swagger腳手架

swagger-boostrap-ui從1.x版本到如今2.x&#xff0c;同時也更改名字Knife4j 在此記錄下 knife4j-spring-boot-starter 的整合。 只需要引入knife4j-spring-boot-starter&#xff0c;無需引入其他的swagger包&#xff0c;knife4j-spring-boot-starter已經包含。 官方版本說明…

mysql1124實驗七索引管理

實驗任務七 索引管理實驗任務書 1. 實驗目的 掌握在MySQL中使用MySQL Workbench或者SQL語句創建和使用索引的方法&#xff08;以SQL命令為重點&#xff09;。 掌握在MySQL中使用MySQL Workbench或者SQL語句查看和刪除索引的方法&#xff08;以SQL命令為重點&#xff09;。 …

詳細解答T-SNE程序中from sklearn.manifold import TSNE的數據設置,包括輸入數據,繪制顏色的參數設置,代碼復制可用!!

文章目錄 前言——TSNE是t-Distributed Stochastic Neighbor Embedding的縮寫1、可運行的T-SNE程序2. 實驗結果3、針對上述程序我們詳細分析T-SNE的使用方法3.1 加載數據3.2 TSNE降維3.3 繪制點3.4 關于顏色設置&#xff0c;顏色使用的標簽數據的說明cy 總結 前言——TSNE是t-D…

Centos Download

前言 CentOS Linux 是一個社區支持的發行版&#xff0c;源自 CentOS git for Red Hat Enterprise Linux &#xff08;RHEL&#xff09; 上免費提供給公眾的源代碼。因此&#xff0c;CentOS Linux 的目標是在功能上與 RHEL 兼容。CentOS 計劃主要更改組件以刪除上游供應商的品牌…

Redis的四種模式:單機、主從、哨兵、集群

一、簡單理解 單機模式&#xff1a;安裝你的redis&#xff0c;啟動服務即為單機模式。 主從模式&#xff1a;一個主節點搭配一個或多個從節點&#xff0c;無自動故障轉移功能&#xff0c;主節點發生故障后&#xff0c;需要人工將其中一個從節點設置為主節點。 哨兵模式&…

【微服務專題】SpringBoot自動配置源碼解析

目錄 前言閱讀對象閱讀導航前置知識筆記正文0、什么是自動配置0.1 基本概念0.2 SpringBoot中的【約定大于配置】0.3 從SpringMVC看【約定大于配置】0.4 從Redis看【約定大于配置】 一、EnableAutoConfiguration源碼解析二、SpringBoot常用條件注解源碼解析2.1 自定義條件注解2.…

java 反射和注解1-反射詳解

反射和注解本就是一家人&#xff0c;注解離不開反射&#xff0c;這里先將反射的寫法&#xff0c;本文涉到的注解暫時可以不不用理解 1&#xff0c;創建一個類 public class ReflexUser {public String name;private String namePrivate;protected String nameProtected;Strin…

Arduino庫之 LedControl 庫說明文檔

LedControl 庫最初是為基于 8 位 AVR 處理器的 Arduino 板編寫的。用于通過MAX7219芯片控制LED矩陣和7段數碼管。但由于該代碼不使用處理器的任何復雜的內部功能&#xff0c;因此具有高度可移植性&#xff0c;并且應該在任何支持 和 功能的 Arduino&#xff08;類似&#xff09…

模擬火車訂票系統---python序列

if __name__ __main__:#創建車輛信息列表list["車次","出發站-到達站","出發時間","到達時間","歷時","余票"]trainNumber[T40,T298,Z158,Z62]address[長春-北京,長春-北京,長春-北京,長春-北京]getTime[00:12,0…

簡單介紹一下js中的構造函數、原型對象prototype、對象原型__proto__、原型鏈

構造函數 function Star (uname, age){this.uname unamethis.age agethis.sing function(){ log(唱歌~) }}let xzq new Star(薛之謙, 30)let ldh new Star(劉德華, 20)log(ldh) // { uname: 劉德華, age: 20, sing: f }ldh.sing() // 唱歌~log(ldh.sing xzq.sing) // fal…

DevEco Studio安裝

HUAWEI DevEco Studio For OpenHarmony&#xff08;以下簡稱DevEco Studio&#xff09;是基于IntelliJ IDEA Community開源版本打造&#xff0c;面向OpenHarmony全場景多設備的一站式集成開發環境&#xff08;IDE&#xff09;&#xff0c;為開發者提供工程模板創建、開發、編譯…

uniapp時間選擇器

Uniapp 是一套基于Vue.js 開發的跨平臺開發框架&#xff0c;它能夠以一套代碼編譯成多個平臺的應用&#xff0c;包括 iOS、Android、H5 等。要實現時間選擇器可以使用uni-app提供的組件picker&#xff0c;它可以用于選擇器、時間選擇器、日期選擇器等場景。 以下是一個簡單的時…

Docker的簡單介紹

Docker是一個開源的應用容器引擎&#xff0c;讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中&#xff0c;然后發布到任何流行的Linux或Windows操作系統的機器上&#xff0c;也可以實現虛擬化。容器是完全使用沙箱機制&#xff0c;相互之間不會有任何接口。 Docker…

服務器被入侵了怎么去排查

在當今數字化時代&#xff0c;網絡安全問題變得越來越重要。其中&#xff0c;服務器被入侵是一種常見的安全威脅。當服務器被入侵時&#xff0c;我們需要采取一系列措施來排查和解決問題。本文將為您提供服務器被入侵后的排查步驟。 第一步&#xff1a;確認服務器被入侵 當發現…

用opencv繪制一個箭頭,沿著圓運動并留下運動軌跡(c++)

用opencv繪制一個箭頭&#xff0c;沿著圓運動并留下運動軌跡&#xff08;c&#xff09;。基于該例程可以簡單實現一個運動小車的模型。 using namespace cv;int main() {// 創建一個黑色背景的圖像&#xff0c;大小為400*400Mat image(400, 400, CV_8UC3, Scalar(0, 0, 0));//…

C語言進階之路-基本數據小怪篇

目錄 一、學習目標&#xff1a; 二、數據基本類型 整型 浮點型 / 實型 字符 字符串 布爾型數據 三、重要的雜七雜八知識點 常量與變量 標準輸入 sizeof運算符&#xff1a; 類型轉換 數據類型的本質 整型數據尺寸 可移植性整型 拿下第一個C語言程序 總結 一、學…

UE小計:頂部工具欄按鈕添加下拉列表,大綱列表、資源管理窗口右鍵添加按鍵

下拉列表 void FYouPluginsModule::StartupModule() {FYouToolStyle::Initialize();FYouToolStyle::ReloadTextures();FYouToolCommands::Register();PluginCommands MakeShareable(new FUICommandList);PluginCommands->MapAction(FYouToolCommands::Get().PackByCloudAc…

web前端之引入svg圖片、html引入點svg文件、等比縮放、解決裁剪問題、命名空間、object標簽、阿里巴巴尺量圖、embed標簽、iframe標簽

MENU 前言直接在頁面編寫svg使用img標簽引入通過css引入使用object標簽引入其他標簽參考資料 前言 web應用開發使用svg圖片的方式&#xff0c;有如下幾種方式 1、直接在頁面編寫svg 2、使用img標簽引入 3、通過css引入 4、使用object標簽引入 直接在頁面編寫svg 在html頁面直接…