中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

微信二維碼網(wǎng)站建設(shè)白帽seo是什么

微信二維碼網(wǎng)站建設(shè),白帽seo是什么,做網(wǎng)站是用ps還是ai,html5網(wǎng)站開發(fā)趨勢學(xué)習(xí)地址: http://c.biancheng.net/view/3730.html 8. C11列表初始化(統(tǒng)一了初始化方式) 我們知道,在 C98/03 中的對象初始化方法有很多種,請看下面的代碼: //初始化列表 int i_arr[3] { 1, 2, 3 }; /…

學(xué)習(xí)地址: http://c.biancheng.net/view/3730.html

8. C++11列表初始化(統(tǒng)一了初始化方式)

  1. 我們知道,在 C++98/03 中的對象初始化方法有很多種,請看下面的代碼:
//初始化列表
int i_arr[3] = { 1, 2, 3 };  //普通數(shù)組
struct A1
{int x;struct B{int i;int j;} b;
} a = { 1, { 2, 3 } };  //POD類型: POD 類型即 plain old data 類型,簡單來說,是可以直接使用 memcpy 復(fù)制的對象。//拷貝初始化(copy-initialization)
int i = 0;
class Foo1
{public:Foo1(int) {}
} foo = 123;  //注意這里需要拷貝構(gòu)造函數(shù)//直接初始化(direct-initialization)
int j(0);
Foo1 bar(123);

2 .為了統(tǒng)一初始化方式,并且讓初始化行為具有確定的效果,C++11 中提出了列表初始化(List-initialization)的概念。

3 . 在上面我們已經(jīng)看到了,對于普通數(shù)組和 POD 類型,C++98/03 可以使用初始化列表(initializer list)進(jìn)行初始化,但是這種初始化方式的適用性非常狹窄,只有上面提到的這兩種數(shù)據(jù)類型可以使用初始化列表。

4 . 在 C++11 中,初始化列表的適用性被大大增加了。它現(xiàn)在可以用于任何類型對象的初始化,請看下面的代碼。

class Foo2
{
public:Foo2(int) {}
private:Foo2(const Foo2 &);Foo2 operator=(const Foo2 &);
};void testInitializer (){Foo2 a1(123);Foo2 a2 = 123;  //網(wǎng)站上面說 會報(bào)錯(cuò)error: 'Foo::Foo(const Foo &)' is private。但是我用xcode沒有報(bào)錯(cuò),斷點(diǎn)進(jìn)入到了Foo2(int) {}Foo2 a3 = {123};Foo2 a4{123};}

5 . a3、a4 使用了新的初始化方式來初始化對象,效果如同 a1 的直接初始化, 這里需要注意的是,a3 雖然使用了等于號,但它仍然是列表初始化,因此,私有的拷貝構(gòu)造并不會影響到它。

6 . 注意我把第一個(gè)構(gòu)造函數(shù)改為 explicit Foo2(int) {}之后 a2, a3報(bào)錯(cuò)

7 . 如果真的要用初始化列表,那么最好用a4這種

8 . 另外,如同讀者所想的那樣,new 操作符等可以用圓括號進(jìn)行初始化的地方,也可以使用初始化列表:


int* a1 = new int { 123 };
double b1 = double { 12.12 };
int* arr1 = new int[3] { 1, 2, 3 };

9 . 除了上面所述的內(nèi)容之外,列表初始化還可以直接使用在函數(shù)的返回值上:

struct Foo3 {Foo3(int i, double j){}
};
Foo3 func3() {return {1, 3};

9. lambda匿名函數(shù)的定義

  1. 定義一個(gè) lambda 匿名函數(shù)很簡單,可以套用如下的語法格式:

[外部變量訪問方式說明符] (參數(shù)) mutable noexcept/throw() -> 返回值類型 {
函數(shù)體; };

1) [外部變量方位方式說明符]
[ ] 方括號用于向編譯器表明當(dāng)前是一個(gè) lambda 表達(dá)式,其不能被省略。在方括號內(nèi)部,可以注明當(dāng)前 lambda 函數(shù)的函數(shù)體中可以使用哪些“外部變量”。
所謂外部變量,指的是和當(dāng)前 lambda 表達(dá)式位于同一作用域內(nèi)的所有局部變量。

2) (參數(shù))
和普通函數(shù)的定義一樣,lambda 匿名函數(shù)也可以接收外部傳遞的多個(gè)參數(shù)。和普通函數(shù)不同的是,如果不需要傳遞參數(shù),可以連同 () 小括號一起省略;

3) mutable
此關(guān)鍵字可以省略,如果使用則之前的 () 小括號將不能省略(參數(shù)個(gè)數(shù)可以為 0)。默認(rèn)情況下,對于以值傳遞方式引入的外部變量,不允許在 lambda 表達(dá)式內(nèi)部修改它們的值(可以理解為這部分變量都是 const 常量)。而如果想修改它們,就必須使用 mutable 關(guān)鍵字。
注意,對于以值傳遞方式引入的外部變量,lambda 表達(dá)式修改的是拷貝的那一份,并不會修改真正的外部變量;

4) noexcept/throw()
可以省略,如果使用,在之前的 () 小括號將不能省略(參數(shù)個(gè)數(shù)可以為 0)。默認(rèn)情況下,lambda 函數(shù)的函數(shù)體中可以拋出任何類型的異常。而標(biāo)注 noexcept 關(guān)鍵字,則表示函數(shù)體內(nèi)不會拋出任何異常;使用 throw() 可以指定 lambda 函數(shù)內(nèi)部可以拋出的異常類型。

值得一提的是,如果 lambda 函數(shù)標(biāo)有 noexcept 而函數(shù)體內(nèi)拋出了異常,又或者使用 throw() 限定了異常類型而函數(shù)體內(nèi)拋出了非指定類型的異常,這些異常無法使用 try-catch 捕獲,會導(dǎo)致程序執(zhí)行失敗(本節(jié)后續(xù)會給出實(shí)例)。

5) -> 返回值類型
指明 lambda 匿名函數(shù)的返回值類型。值得一提的是,如果 lambda 函數(shù)體內(nèi)只有一個(gè) return 語句,或者該函數(shù)返回 void,則編譯器可以自行推斷出返回值類型,此情況下可以直接省略-> 返回值類型。

6) 函數(shù)體
和普通函數(shù)一樣,lambda 匿名函數(shù)包含的內(nèi)部代碼都放置在函數(shù)體中。該函數(shù)體內(nèi)除了可以使用指定傳遞進(jìn)來的參數(shù)之外,還可以使用指定的外部變量以及全局范圍內(nèi)的所有全局變量。

2 . ??需要注意的是,外部變量會受到以值傳遞還是以引用傳遞方式引入的影響,而全局變量則不會。換句話說,在 lambda 表達(dá)式內(nèi)可以使用任意一個(gè)全局變量,必要時(shí)還可以直接修改它們的值。

3 . 比如,如下就定義了一個(gè)最簡單的 lambda 匿名函數(shù):[]{}

4 . 外部變量格式 功能
[] 空方括號表示當(dāng)前 lambda 匿名函數(shù)中不導(dǎo)入任何外部變量。
[=] 只有一個(gè) = 等號,表示以值傳遞的方式導(dǎo)入所有外部變量;
[&] 只有一個(gè) & 符號,表示以引用傳遞的方式導(dǎo)入所有外部變量;
[val1,val2,…] 表示以值傳遞的方式導(dǎo)入 val1、val2 等指定的外部變量,同時(shí)多個(gè)變量之間沒有先后次序;
[&val1,&val2,…] 表示以引用傳遞的方式導(dǎo)入 val1、val2等指定的外部變量,多個(gè)變量之間沒有前后次序;
[val,&val2,…] 以上 2 種方式還可以混合使用,變量之間沒有前后次序。
[=,&val1,…] 表示除 val1 以引用傳遞的方式導(dǎo)入外,其它外部變量都以值傳遞的方式導(dǎo)入。
[this] 表示以值傳遞的方式導(dǎo)入當(dāng)前的 this 指針。

5 . ??注意,單個(gè)外部變量不允許以相同的傳遞方式導(dǎo)入多次。例如 [=,val1] 中,val1 先后被以值傳遞的方式導(dǎo)入了 2 次,這是非法的。


void testLambda() {int num[4]{2,5,3,4};sort(num, num+4, [num](int x, int y)->bool{return x < y;});cout<< "sort:" <<endl;for (auto &n: num) {cout<< n <<endl;}
}
http://www.risenshineclean.com/news/8942.html

相關(guān)文章:

  • 學(xué)校官方網(wǎng)站專業(yè)做網(wǎng)站
  • 云南網(wǎng)站制作案例百度云盤資源共享鏈接群組鏈接
  • 武漢工程信息網(wǎng)seo入門教程視頻
  • 網(wǎng)絡(luò)公司的網(wǎng)頁設(shè)計(jì)圖片優(yōu)化是什么意思
  • 大良商城網(wǎng)站建設(shè)2023疫情最新消息今天
  • 個(gè)人站長做導(dǎo)航網(wǎng)站百度手機(jī)瀏覽器
  • 網(wǎng)站后臺后綴名惠州seo代理商
  • 行業(yè)獵頭網(wǎng)seo中文
  • 國內(nèi)網(wǎng)站賞析社群營銷的具體方法
  • dw做網(wǎng)站教程汕頭搜索引擎優(yōu)化服務(wù)
  • 學(xué)習(xí)做網(wǎng)站soso搜搜
  • wordpress 扁平化響應(yīng)式主題谷歌seo課程
  • 建設(shè)外賣網(wǎng)站規(guī)劃書網(wǎng)站頁面布局和樣式設(shè)計(jì)
  • 青島企業(yè)建設(shè)網(wǎng)站企業(yè)電商運(yùn)營工資大概多少
  • 類似17做網(wǎng)店的網(wǎng)站杭州百度seo
  • 咋么做網(wǎng)站谷歌廣告推廣怎么做
  • 青島市網(wǎng)站建設(shè)公司百度官網(wǎng)認(rèn)證申請
  • 佛山微網(wǎng)站建設(shè) 天博廣東省疫情最新
  • 宜昌視頻網(wǎng)站建設(shè)優(yōu)化大師最新版下載
  • 做網(wǎng)站一個(gè)月能掙多少媒體:多地新增感染趨勢回落
  • 畢業(yè)設(shè)計(jì)題目河南靠譜seo電話
  • 一個(gè)人搞得定網(wǎng)站建設(shè)網(wǎng)絡(luò)seo優(yōu)化公司
  • 如何在網(wǎng)站申請做co谷歌搜索引擎入口2021
  • 網(wǎng)站建設(shè)技術(shù)指標(biāo)營銷型網(wǎng)站建設(shè)步驟
  • 溫州 外貿(mào)網(wǎng)站制作中國站長站官網(wǎng)
  • 阿里云網(wǎng)站備案要多久營銷型網(wǎng)站是什么意思
  • 源美網(wǎng)站建設(shè)推廣軟文代寫
  • 做的網(wǎng)站如何改標(biāo)題近期發(fā)生的重大新聞
  • 網(wǎng)絡(luò)架構(gòu)中sdn是指關(guān)鍵字優(yōu)化
  • 網(wǎng)站設(shè)計(jì)需求分析重慶seo哪個(gè)強(qiáng)