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

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

網(wǎng)站建設(shè)需要什么專業(yè)如何推廣平臺(tái)

網(wǎng)站建設(shè)需要什么專業(yè),如何推廣平臺(tái),wordpress自動(dòng)播放,高密市住房和城鄉(xiāng)建設(shè)局網(wǎng)站3.1 重新定義的auto關(guān)鍵字 1.當(dāng)用一個(gè)auto關(guān)鍵字聲明多個(gè)變量的時(shí)候,編譯器遵從由左往右的推導(dǎo)規(guī)則,以最左邊的表達(dá)式推斷auto的具體類型 int n 5; auto *pn &n, m 10;// 這里auto被推導(dǎo)為 int 所以int m 10;合理 auto *pns &n, m 10.0;/…

3.1 重新定義的auto關(guān)鍵字

1.當(dāng)用一個(gè)auto關(guān)鍵字聲明多個(gè)變量的時(shí)候,編譯器遵從由左往右的推導(dǎo)規(guī)則,以最左邊的表達(dá)式推斷auto的具體類型

int n = 5;
auto *pn = &n, m = 10;// 這里auto被推導(dǎo)為 int  所以int m = 10;合理
auto *pns = &n, m = 10.0;//編譯失敗,聲明類型不統(tǒng)一

2.當(dāng)使用條件表達(dá)式初始化auto聲明的變量時(shí),編譯器總是使用表達(dá)能力更強(qiáng)的類型:

auto i = true ? 5 : 8.0; // i的數(shù)據(jù)類型為double

3.雖然C++11標(biāo)準(zhǔn)已經(jīng)支持在聲明成員變量時(shí)初始化(見(jiàn)第8章),但是auto卻無(wú)法在這種情況下聲明非靜態(tài)成員變量

struct sometype {
auto i = 5; // 錯(cuò)誤,無(wú)法編譯通過(guò)
}struct sometype {
static const auto i = 5;
};//這個(gè)樣子可以 但是i就是常量了 C++17修改
struct sometype {
static inline auto i = 5;
};

4.按照C++20之前的標(biāo)準(zhǔn),無(wú)法在函數(shù)形參列表中使用auto聲明形參(注意,在C++14中,auto可以為lambda表達(dá)式聲明形參):

3.2 推導(dǎo)規(guī)則

1.在進(jìn)行值傳遞的時(shí)候忽略原始的CV限定

const int i = 5;
auto j = i;         // auto推導(dǎo)類型為int,而非const int
auto &m = i;         // auto推導(dǎo)類型為const int,m推導(dǎo)類型為const int&
auto *k = i;         // auto推導(dǎo)類型為const int,k推導(dǎo)類型為const int*
const auto n = j;     // auto推導(dǎo)類型為int,n的類型為const int

2.使用auto聲明變量初始化時(shí),目標(biāo)對(duì)象如果是引用,則引用屬性會(huì)被忽略:

int i = 5;
int &j = i;
auto m = j; // auto推導(dǎo)類型為int,而非int&

3.使用auto和萬(wàn)能引用聲明變量時(shí)(見(jiàn)第6章),對(duì)于左值會(huì)將auto推導(dǎo)為引用類型

int i = 5;
auto&& m = i; // auto推導(dǎo)類型為int& (這里涉及引用折疊的概念)
auto&& j = 5; // auto推導(dǎo)類型為int

根據(jù)規(guī)則3,因?yàn)閕是一個(gè)左值,所以m的類型被推導(dǎo)為int&, auto被推導(dǎo)為int&,這其中用到了引用折疊的規(guī)則。而5是一個(gè)右值,因此j的類型被推導(dǎo)為int&&,auto被推導(dǎo)為int。
?

4.使用auto聲明變量,如果目標(biāo)對(duì)象是一個(gè)數(shù)組或者函數(shù),則auto會(huì)被推導(dǎo)為對(duì)應(yīng)的指針類型:
?

int i[5];
auto m = i; // auto推導(dǎo)類型為int*
int sum(int a1, int a2)
{return a1+a2;
}
auto j = sum // auto推導(dǎo)類型為int (__cdecl *)(int,int)

思考?

class Base {
public:virtual void f(){std::cout << "Base::f()" << std::endl;};
};
class Derived : public Base {
public:virtual void f() override{std::cout << "Derived::f()" << std::endl;};
};Base* d = new Derived();auto& b = *d;//auto b = *d;  b.f();

auto b? 調(diào)用基類函數(shù)? auto& b調(diào)用子類的函數(shù)

個(gè)人認(rèn)為的解釋:*d的類型是確定的Base? auto b = *d; 那邊auto就是推導(dǎo)出來(lái)的Base 所以調(diào)用的就是Base的f函數(shù)

而 auto&b? 編譯器推導(dǎo)出變量的類型時(shí),會(huì)保留右值表達(dá)式的引用性?

右值 *d 的類型是 Base&,即 d 指向的 Derived 對(duì)象被解引用為 Base& 類型。
因此,b 的類型推導(dǎo)為 Base&(對(duì) Base 的引用),實(shí)際引用的是 Derived 對(duì)象。

所以會(huì)調(diào)用Derived的f函數(shù)

3.3 什么時(shí)候使用auto
?

1.當(dāng)一眼能看出類型的時(shí)候使用auto

一般是在遍歷容器的時(shí)候使用?

    vector<int> x{ 1,2,3 };for (vector<int>::iterator it = x.begin(); it != x.end(); ++it){}//等價(jià)于for (auto = x.begin(); it != x.end(); ++it){}//當(dāng)使用map的時(shí)候  對(duì)于這個(gè)容器遍歷前面的 string應(yīng)該為coonststd::map<std::string, int> str2int;//這個(gè)可以不加constfor (map< std::string, int>::iterator it = str2int.begin(); it != str2int.end(); ++it){cout << it->second << endl;}//這個(gè)得加for (pair<const string,int> &it : str2int){cout << it.second << endl;}

2.用于lambda 與bind?

auto l = [](int a1, int a2) { return a1 + a2; };
int sum(int a1, int a2) { return a1 + a2; };

auto b = std::bind(sum, 5, std::placeholders::_1);
?

3.4 返回類型推導(dǎo)
?

C++14標(biāo)準(zhǔn)支持對(duì)返回類型聲明為auto的推導(dǎo)
?

auto sum(int a1, int a2) { return a1 + a2; };

如果有多個(gè)返回值 要返回值的類型一致

不同的返回類型會(huì)導(dǎo)致編譯失敗。

3.5lambda表達(dá)式中使用auto類型推導(dǎo)

在C++14標(biāo)準(zhǔn)中我們還可以把a(bǔ)uto寫到lambda表達(dá)式的形參中,這樣就得到了一個(gè)泛型的lambda表達(dá)式
?

auto l = [](auto a1, auto a2) { return a1 + a2; };
auto retval = l(5, 5.0);
//在上面的代碼中a1被推導(dǎo)為int類型,a2被推導(dǎo)為double類型,返回值retval被推導(dǎo)為double類型。

返回auto引用的方法

auto l = [](int &i)->auto& { return i; };
auto x1 = 5;
auto &x2 = l(x1);
assert(&x1 == &x2); // 有相同的內(nèi)存地址

3.6 非類型模板形參占位符
?

c++17引入?它可以作為非類型模板形參的占位符

#include <iostream>
template<auto N>
void f()
{std::cout << N << std::endl;
}
int main()
{f<5>(); // N為int類型f<'c'>(); // N為char類型f<5.0>(); // 編譯失敗,模板參數(shù)不能為double
}

c++17才有?

http://www.risenshineclean.com/news/37105.html

相關(guān)文章:

  • 用手機(jī)建網(wǎng)站的步驟線上it培訓(xùn)機(jī)構(gòu)
  • 阿里云虛擬主機(jī)可以做幾個(gè)網(wǎng)站嗎長(zhǎng)沙網(wǎng)絡(luò)推廣軟件
  • 東莞 網(wǎng)站建設(shè)seo查詢平臺(tái)
  • seo做的好的網(wǎng)站有哪些哪個(gè)模板建站好
  • 網(wǎng)站建設(shè)需要哪些資料網(wǎng)站建設(shè)與網(wǎng)站設(shè)計(jì)
  • 寵物社區(qū)網(wǎng)站開(kāi)發(fā)設(shè)計(jì)文檔網(wǎng)絡(luò)整合營(yíng)銷方案
  • 那里有個(gè)人做網(wǎng)站的網(wǎng)址推薦
  • 第一次開(kāi)票網(wǎng)站建設(shè)怎么開(kāi)公司如何建立網(wǎng)站
  • 網(wǎng)站開(kāi)發(fā)通用流程圖廈門seo排名公司
  • 中文網(wǎng)站建設(shè)小組企業(yè)推廣策劃書(shū)
  • 大連商城網(wǎng)站制作公司b站免費(fèi)版入口
  • 做電子章網(wǎng)站可以下載新聞視頻的網(wǎng)站
  • 婚紗攝影的網(wǎng)站怎么做什么是百度競(jìng)價(jià)排名服務(wù)
  • 網(wǎng)站內(nèi)鏈?zhǔn)鞘裁?怎么做如何制作一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)
  • 做舞臺(tái)燈光的在哪些網(wǎng)站接訂單呢今日新聞?wù)?0字
  • 怎么做網(wǎng)站的百度排名百度指數(shù)怎么看
  • wordpress密碼漏洞佛山百度seo代理
  • 貴州高端網(wǎng)站建設(shè)網(wǎng)站網(wǎng)址查詢工具
  • 織夢(mèng)網(wǎng)站自助申請(qǐng)友鏈代碼seo建站平臺(tái)哪家好
  • 江蘇省政府門戶網(wǎng)站建設(shè)方案哪個(gè)行業(yè)最需要推廣
  • 如何將自己做的網(wǎng)站導(dǎo)入淘寶百度電腦版網(wǎng)址
  • 天津做網(wǎng)站的360優(yōu)化大師下載
  • 做網(wǎng)站需要什么源碼惠州seo排名公司
  • 網(wǎng)站建設(shè)品牌策劃方案制作網(wǎng)頁(yè)教程
  • 制作網(wǎng)站的軟件主要有灰色詞排名上首頁(yè)
  • 怎樣做代刷網(wǎng)站長(zhǎng)永久免費(fèi)國(guó)外域名注冊(cè)
  • 正能量網(wǎng)站窗口免費(fèi)進(jìn)網(wǎng)店推廣方式有哪些
  • 長(zhǎng)春網(wǎng)站建設(shè)電話咨詢海外網(wǎng)絡(luò)推廣平臺(tái)
  • 網(wǎng)站建設(shè)步驟網(wǎng)站推廣方案范例
  • 福州市城鄉(xiāng)建設(shè)局網(wǎng)站人工智能培訓(xùn)班