最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ Array容器的顯示和隱式實(shí)例化詳細(xì)介紹

 更新時(shí)間:2022年10月19日 09:32:23   作者:Peak@  
這篇文章主要介紹了C++中Array容器的隱式實(shí)例化和顯式實(shí)例化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

提到Array容器的隱式實(shí)例化和顯式實(shí)例化,不得不先說(shuō)說(shuō)Array的類模板。

類模板自己本身并不是一個(gè)類型和對(duì)象,模板必須進(jìn)行實(shí)例化,實(shí)例化分為隱式和顯式兩種。

隱式實(shí)例化:在需要一個(gè)完整定義類型的代碼中,如果該類型是通過(guò)某個(gè)模板來(lái)提供,就會(huì)發(fā)生模板的隱式實(shí)例化。

顯式實(shí)例化:常用在模板的接口與實(shí)現(xiàn)分離的場(chǎng)合,顯式實(shí)例化效率較高。

下面創(chuàng)建了Array的類模板和實(shí)例化:

1、Array的類模板和隱式實(shí)例化

//arraytp.hpp
#pragma once
template<typename T, size_t N>
class Array
{
public:
	using size_type = size_t;
	//遍歷array
	void traverse() {
		for (const auto& e : arr) {
			std::cout << e << ' ';
		}
		std::cout << '\n';
	}
	T& operator[](size_type i) {
		return arr[i];
	}
private:
	T arr[N];
};
// Arrytest.cpp
#include <iostream>
#include"arraytp.hpp"
int main()
{
    //定義一個(gè)長(zhǎng)度為9的Array數(shù)組容器
    Array<int, 9> ia;
    //給ia賦值
    for (int  i = 0; i < 9; i++)
    {
        ia[i] = i;
    }
    //遍歷ia
    ia.traverse();
    return 0;
}

運(yùn)行結(jié)果:

2、Array類模板的接口和實(shí)現(xiàn)

顯式實(shí)例化:

//arraytp.hpp
#pragma once
template<typename T, size_t N>
class Array
{
public:
	using size_type = size_t;
	void traverse();
	T& operator[](size_type i);
private:
	T arr[N];
};
//m1.cpp
#include<iostream>
#include<string>
#include "arraytp.hpp"
template<typename T,size_t N>
//遍歷Array
void Array<T, N>::traverse() 
{
	for (const auto& e : arr) {
		std::cout << e << ' ';
	}
	std::cout << '\n';
}
template<typename T,size_t N>
T& Array<T, N>::operator[](size_type i) 
{
	return arr[i];
}
//在類模板中創(chuàng)建了三個(gè)顯式類型
template class Array<int, 9>;
template class Array<double, 9>;
template class Array<std::string, 9>;
// ArryDisplay.cpp
#include <iostream>
#include"arraytp.hpp"
void assignment();
int main()
{
    assignment();
}
void assignment()
{
	//定義一個(gè)長(zhǎng)度為9的Array數(shù)組容器
	Array<double, 9> ia;
	//給ia賦值
	for (int i = 0; i < 9; i++) {
		ia[i] = i;
	}
	//遍歷
	ia.traverse();
}

運(yùn)行結(jié)果:

在顯式實(shí)例化中是將模板的接口和實(shí)現(xiàn)分離了,同時(shí)在模板的實(shí)現(xiàn)中又三個(gè)顯式類型,顯式實(shí)例化還可以減少編譯時(shí)間和對(duì)象大小。

.hpp文件是.h頭文件和.cpp源文件的結(jié)合,.h文件放聲明,.cpp文件放實(shí)現(xiàn),而.hpp文件就是將聲明和實(shí)現(xiàn)放在一起。

size_t是標(biāo)準(zhǔn)C庫(kù)中定義的,它是一個(gè)基本的與機(jī)器相關(guān)的無(wú)符號(hào)整數(shù)的C/C++類型。

參考書籍:Accelerated C++和Cpp_Primer_5

到此這篇關(guān)于C++ Array容器的顯示和隱式實(shí)例化詳細(xì)介紹的文章就介紹到這了,更多相關(guān)C++ Array容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實(shí)現(xiàn)五子棋小游戲

    C++實(shí)現(xiàn)五子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++筆記之std::future的用法小結(jié)

    C++筆記之std::future的用法小結(jié)

    std::future通常由某個(gè)Provider創(chuàng)建,與std::async一起使用,本文主要介紹了C++筆記之std::future的用法小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • C語(yǔ)言實(shí)現(xiàn)班級(jí)學(xué)生管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)班級(jí)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)班級(jí)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++判斷pe文件實(shí)例

    C++判斷pe文件實(shí)例

    這篇文章主要介紹了C++判斷pe文件的方法,包含了文件操作的具體實(shí)現(xiàn)方法,具有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C++小知識(shí):盡可能使用枚舉類

    C++小知識(shí):盡可能使用枚舉類

    今天小編就為大家分享一篇關(guān)于C++小知識(shí):盡可能使用枚舉類,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • C++STL之string類的使用

    C++STL之string類的使用

    這篇文章主要為大家詳細(xì)介紹了C++STL中的string類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Qt使用HTTP上傳json格式數(shù)據(jù)

    Qt使用HTTP上傳json格式數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Qt如何使用HTTP上傳json格式數(shù)據(jù),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下
    2024-12-12
  • 探討:C++中函數(shù)返回引用的注意事項(xiàng)

    探討:C++中函數(shù)返回引用的注意事項(xiàng)

    本篇文章是對(duì)C++中函數(shù)返回引用的注意事項(xiàng)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 從匯編看c++函數(shù)的默認(rèn)參數(shù)的使用說(shuō)明

    從匯編看c++函數(shù)的默認(rèn)參數(shù)的使用說(shuō)明

    本篇文章介紹了,在c++中函數(shù)的默認(rèn)參數(shù)的使用說(shuō)明分析。需要的朋友參考下
    2013-05-05
  • C數(shù)據(jù)結(jié)構(gòu)之單鏈表詳細(xì)示例分析

    C數(shù)據(jù)結(jié)構(gòu)之單鏈表詳細(xì)示例分析

    以下是對(duì)C語(yǔ)言中的單鏈表進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08

最新評(píng)論

石林| 昌黎县| 精河县| 保康县| 千阳县| 巨鹿县| 嘉黎县| 东乡| 三门县| 五家渠市| 丹巴县| 邯郸县| 泗洪县| 开封市| 疏附县| 浮梁县| 伊金霍洛旗| 西华县| 本溪市| 都安| 隆德县| 增城市| 江口县| 房山区| 芮城县| 大城县| 离岛区| 平武县| 舞钢市| 大庆市| 绥棱县| 金沙县| 浦江县| 闻喜县| 宜春市| 东宁县| 商水县| 河源市| 根河市| 龙口市| 托克逊县|