欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ 花括號{}初始化小結

 更新時間:2023年06月27日 14:28:32   作者:Jiali_0323  
在C++11及以后的版本中,花括號{}語法在不同語境下有不同的用法,本文就詳細的介紹C++ 花括號{}初始化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在C++11及以后的版本中,花括號{}語法在不同語境下有不同的用法,下面總結使用{}的常見場景:

1 列表初始化

List Initialization

{}可以使用列表初始化的方式初始化對象,包括內置類型,數組,容器等。如:

int x = {5};            // x被初始化為5
std::vector<int> v = {1, 2, 3};  // 用三個元素初始化一個數組
int arr[] = {1, 2, 3};  // 用三個元素初始化一個數組

列表初始化確保初始化是充分定義的。

2 值初始化

Value Initialization

在某些情況下,{}會用零或者默認值來初始化一個對象,如:

int x{};       // x被初始化為0
double d{};    // x被初始化為0

對于沒有初始化構造函數的對象,可以使用值初始化的方式。

3 空初始化

Empty Initialization

在某些情況下,{}會將對象初始化為空,如:

std::string s{};      // 初始化一個空字符串
std::vector<int> v{}; // 初始化一個空容器
char arr[10]{}; //初始化一個空數組

4 指針的空初始化

Empty Initialization of Pointers
{}可以將指針初始化為nullptr,表示其暫時不指向任何對象。

int* ptr{};         // 將指針初始化為nullptr
std::shared_ptr<int> sp{};  // 將共享指針初始化為nullptr

花括號實際上是通過initializer_list的方式來實現

vector (initializer_list<value_type> il,
const allocator_type& alloc = allocator_type());   //vector使用initializer_list進行初始化

C++11中提供了initializer_list類(初始值列表,定義在initializer_list頭文件中),用于處理參數類型相同但是數量可變的情況

initializer_list<T> lst; 
// 默認初始化,元素列表為空
initializer_list<T> lst{a, b,c...}; 
// lst的元素為對應初始值的副本,列表中元素均為const,不能修改

lst2(lst)       拷貝操作,不會拷貝列表中的元素

lst2 = lst      賦值操作,不會拷貝列表中的元素

lst.size()      返回列表的大小

lst.begin()    返回指向lst中首元素的指針

lst.end()       返回指向lst中尾元素下一個位置的指針

初始值列表并沒有提供可以增刪元素的操作,所以只能可以通過花括號的方式構造initializer_list對象,然后作為參數傳入,使用時通過迭代器進行遍歷。

到此這篇關于C++ 花括號{}初始化小結的文章就介紹到這了,更多相關C++ 花括號內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用c語言輕松實現動態(tài)內存管

    使用c語言輕松實現動態(tài)內存管

    這篇文章主要介紹了使用c語言輕松實現動態(tài)內存管,本文章內容詳細,具有很好的參考價值,希望對大家有所幫助,需要的朋友可以參考下
    2023-01-01
  • c++中stack、queue和vector的基本操作示例

    c++中stack、queue和vector的基本操作示例

    這篇文章主要給大家介紹了關于c++中stack、queue和vector基本操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-08-08
  • C++實現簡易通訊錄管理系統(tǒng)

    C++實現簡易通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現簡易通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 華為云CodeArts?IDE?Online快速入門和使用

    華為云CodeArts?IDE?Online快速入門和使用

    華為云CodeArts?IDE?Online服務,提供了可隨時隨地編碼的云上開發(fā)環(huán)境,同時具備開放的生態(tài)和獨立插件市場,本文主要介紹了華為云CodeArts?IDE?Online快速入門和使用,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Java?C++?算法題解leetcode669修剪二叉搜索樹示例

    Java?C++?算法題解leetcode669修剪二叉搜索樹示例

    這篇文章主要為大家介紹了Java?C++?算法題解leetcode669修剪二叉搜索樹示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • C語言常用的編輯器你知道幾個

    C語言常用的編輯器你知道幾個

    這篇文章主要為大家詳細介紹了C語言常用的編輯器,中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言實現中國象棋

    C語言實現中國象棋

    這篇文章主要為大家詳細介紹了C語言實現中國象棋,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++ set到底是什么

    C++ set到底是什么

    這篇文章主要討論C++ 中得set到底是什么?在C++當中,這幾個東西的名字叫做vector、set和map,它們有一個共同的名字叫做STL(標準模板庫)容器。下面來看看文章是怎么介紹得吧,需要的朋友可以參考一下哦
    2021-11-11
  • C++數據結構之單鏈表

    C++數據結構之單鏈表

    這篇文章主要介紹了C++數據結構之單鏈表,鏈表是由一個個結點鏈結成的。結點包括數據域和指針域兩部分,數據域用來存儲數據元素的信息,指針域用來存儲下一個結點的地址,更詳細內容請需要的小伙伴參考下面文章內容
    2022-01-01
  • C語言實現小學生隨機出題測試計分

    C語言實現小學生隨機出題測試計分

    這篇文章主要為大家詳細介紹了C語言實現小學生隨機出題測試計分,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評論