国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

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

網(wǎng)站建設(shè)需要什么專業(yè),如何推廣平臺,wordpress自動播放,高密市住房和城鄉(xiāng)建設(shè)局網(wǎng)站3.1 重新定義的auto關(guān)鍵字 1.當用一個auto關(guān)鍵字聲明多個變量的時候,編譯器遵從由左往右的推導(dǎo)規(guī)則,以最左邊的表達式推斷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.當用一個auto關(guān)鍵字聲明多個變量的時候,編譯器遵從由左往右的推導(dǎo)規(guī)則,以最左邊的表達式推斷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.當使用條件表達式初始化auto聲明的變量時,編譯器總是使用表達能力更強的類型:

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

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

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

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

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

1.在進行值傳遞的時候忽略原始的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聲明變量初始化時,目標對象如果是引用,則引用屬性會被忽略:

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

3.使用auto和萬能引用聲明變量時(見第6章),對于左值會將auto推導(dǎo)為引用類型

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

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

4.使用auto聲明變量,如果目標對象是一個數(shù)組或者函數(shù),則auto會被推導(dǎo)為對應(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ù)

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

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

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

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

3.3 什么時候使用auto
?

1.當一眼能看出類型的時候使用auto

一般是在遍歷容器的時候使用?

    vector<int> x{ 1,2,3 };for (vector<int>::iterator it = x.begin(); it != x.end(); ++it){}//等價于for (auto = x.begin(); it != x.end(); ++it){}//當使用map的時候  對于這個容器遍歷前面的 string應(yīng)該為coonststd::map<std::string, int> str2int;//這個可以不加constfor (map< std::string, int>::iterator it = str2int.begin(); it != str2int.end(); ++it){cout << it->second << endl;}//這個得加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標準支持對返回類型聲明為auto的推導(dǎo)
?

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

如果有多個返回值 要返回值的類型一致

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

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

在C++14標準中我們還可以把auto寫到lambda表達式的形參中,這樣就得到了一個泛型的lambda表達式
?

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://aloenet.com.cn/news/37105.html

相關(guān)文章:

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