国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較

這篇具有很好參考價(jià)值的文章主要介紹了我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用


??引用

??引用概念

引用不是新定義一個(gè)變量,而是給已存在變量取了一個(gè)別名,編譯器不會(huì)為引用變量開辟內(nèi)存空間,它和它引用的變量共用同一塊內(nèi)存空間。

定義:類型&引用變量名(對(duì)象名) = 引用實(shí)體;
例如以下代碼,在變量名前加一個(gè)&,意思是一個(gè)引用類型,ba的別名,也就是a有了一個(gè)外號(hào),但還是a本身:

int a = 70;
int& b = a; //引用:b是a的別名

我們接下來(lái)看看引用后的地址是否會(huì)發(fā)生改變:
例如以下例子:

int main()
{
	int a = 70;
	int& b = a; //引用:b是a的別名
	int& c = a; //引用:c是a的別名
	c = 80;

	cout << a << endl;
	cout << &a << endl;
	cout << &b << endl;
	cout << &c << endl;

	return 0;
}

代碼運(yùn)行圖:在這個(gè)代碼中,定義了一個(gè)變量a70,int& b = a; 這里ba的引用,給a取了一個(gè)外號(hào)b,int& c = a; 這里ca的引用,又給a取了一個(gè)外號(hào)是c,因此我們對(duì)c還是對(duì)b進(jìn)行修改,a都會(huì)發(fā)生改變,這是因?yàn)?strong>編譯器不會(huì)為引用變量開辟內(nèi)存空間,它和它引用的變量共用同一塊內(nèi)存空間。
我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用

注意:引用類型必須和引用實(shí)體是同種類型的

??引用特性

  1. 引用必須在定義時(shí)初始化:
    引用必須在定義時(shí)初始化,不能在之后單獨(dú)為它賦值。
int a = 10; 
int& ra = a; // 正確,ra初始化為a
int& ra; // 錯(cuò)誤,引用必須在定義時(shí)初始化
  1. 一個(gè)變量可以有多個(gè)引用
int a = 10;

int& ref1 = a; 
int& ref2 = a;

ref1++; // a的值變?yōu)?1
cout << a << endl; // 輸出11

ref2--; // a的值變?yōu)?0
cout << a << endl; // 輸出10
  1. 引用一旦引用一個(gè)實(shí)體,再不能引用其他實(shí)體
    引用本質(zhì)上就是給原變量添加一個(gè)別名,它的內(nèi)存地址就是原變量的地址。所以對(duì)引用賦值或修改,實(shí)際上就是修改原變量。而指針不同,指針可以改變指向的對(duì)象:一級(jí)指針可以改變指向,如p可以從指向a改為指向其他變量,二級(jí)指針可以改變一級(jí)指針指向的地址,如pp可以改變p指向的地址

而引用更像一個(gè)const指針:定義后不能改變指向的對(duì)象,就像const指針定義后不能改變指向
但可以通過(guò)這個(gè)“const指針”來(lái)修改原對(duì)象,就像通過(guò)const指針可以修改原對(duì)象

int a = 10;
int b = 20;

int& ref = a; 
ref = b; // 錯(cuò)誤!引用ref已經(jīng)引用a,不能再引用b

cout << ref << endl; // 輸出10,ref依然引用a

如圖:ref引用了a,這里的值發(fā)生改變是因?yàn)閎賦值給了ref
我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用

??使用場(chǎng)景

??做參數(shù)(傳值與傳地址)

當(dāng)引用用來(lái)做參數(shù)時(shí)將會(huì)對(duì)代碼進(jìn)行大大的優(yōu)化,并且具有可讀性,如:當(dāng)我們看了很多遍的交換了兩個(gè)數(shù)的函數(shù):

void Swap(int* a, int* b)
{
	int tmp = *a;
	*a = *b;
	*b = tmp;
}

int main()
{
	int ra = 88;
	int rb = 99;
	Swap(&ra, &rb);
	return 0;
}

形參是實(shí)參的一份臨時(shí)拷貝,所以如果想交換需要,傳地址,不能傳值。

void Swap(int& a, int& b)
{
	int tmp = a;
	a = b;
	b = tmp;
}
int main()
{
	int ra = 88;
	int rb = 99;
	Swap(ra, rb);
	return 0;
}

ab分別是rarb的別名,當(dāng)你調(diào)換ab的紙時(shí),其實(shí)是修改了rarb的地址的值,這樣的好處就是,當(dāng)你看代碼時(shí),引用ab給人一種感覺(jué),就是操作rarb本身。這隱藏了底層是通過(guò)地址操作原變量rarb的實(shí)現(xiàn)細(xì)節(jié)。從使用者的角度看,代碼讀起來(lái)就像直接交換rarb,而不是通過(guò)復(fù)雜的地址操作實(shí)現(xiàn)。

這里使用了引用挺好的,不用擔(dān)心指針的解引用,地址相關(guān)操作,但是,前面我們知道,引用一旦指向一個(gè)實(shí)體,就無(wú)法改變指向,例如,有關(guān)鏈表操作,當(dāng)我們要?jiǎng)h除一個(gè)節(jié)點(diǎn),是不是要改變前面節(jié)點(diǎn)的指針,讓他指向后面節(jié)點(diǎn),而引用恰恰不能改變,因此,引用也不是完全替代指針的
我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用
回歸正題,這里還有一個(gè)小注意點(diǎn):作用域的不同,因此,在Swap函數(shù)里,取別的名字都可以,任由發(fā)揮,結(jié)果都相同。

void Swap(int& x, int& x)
{
	int tmp = x;
	x = y;
	y = tmp;
}
int main()
{
	int ra = 88;
	int rb = 99;
	Swap(ra, rb);
	return 0;
}

??傳值、傳引用效率比較

以值作為參數(shù)或者返回值類型,在傳參和返回期間,函數(shù)不會(huì)直接傳遞實(shí)參或者將變量本身直接返回,而是傳遞實(shí)參或者返回變量的一份臨時(shí)的拷貝,因此用值作為參數(shù)或者返回值類型,效率是非常低下的,尤其是當(dāng)參數(shù)或者返回值類型非常大時(shí),效率就更低。

#include <time.h>
struct A { int a[10000]; };
void TestFunc1(A a) {}
void TestFunc2(A& a) {}
void TestRefAndValue()
{
	A a;
	// 以值作為函數(shù)參數(shù)
	size_t begin1 = clock();
	for (size_t i = 0; i < 10000; ++i)
		TestFunc1(a);
	size_t end1 = clock();

	// 以引用作為函數(shù)參數(shù)
	size_t begin2 = clock();
	for (size_t i = 0; i < 10000; ++i)
		TestFunc2(a);
	size_t end2 = clock();
	// 分別計(jì)算兩個(gè)函數(shù)運(yùn)行結(jié)束后的時(shí)間
	cout << "TestFunc1(A)-time:" << end1 - begin1 << endl;
	cout << "TestFunc2(A&)-time:" << end2 - begin2 << endl;
}

int main()
{
	TestRefAndValue();
	return 0;
}

按值傳遞(TestFunc1):
調(diào)TestFunc1(a)時(shí),會(huì)將a進(jìn)行拷貝,生成一個(gè)臨時(shí)對(duì)象**a_copy**。**a_copy**作為參數(shù)傳遞給TestFunc1。TestFunc1內(nèi)部操作的實(shí)際上是a_copy,對(duì)a_copy的修改不會(huì)影響實(shí)參aTestFunc1返回時(shí),臨時(shí)對(duì)象a_copy會(huì)被銷毀。TestFunc1以值方式傳遞結(jié)構(gòu)體A作為參數(shù)。這會(huì)導(dǎo)致每次調(diào)用都會(huì)對(duì)A進(jìn)行值拷貝,對(duì)于一個(gè)包含10000個(gè)int成員的大結(jié)構(gòu)體,拷貝開銷很大。

按引用傳遞(TestFunc2):
調(diào)用TestFunc2(a)時(shí),不會(huì)進(jìn)行值拷貝,直接傳遞a的引用。TestFunc2內(nèi)部操作的仍然是實(shí)參a本身。TestFunc2返回時(shí),不需要銷毀任何對(duì)象。TestFunc2以引用方式傳遞A。這種方式下,函數(shù)內(nèi)直接操作的就是實(shí)參a本身,不會(huì)有任何拷貝開銷。

總結(jié):
TestFunc1值傳遞,效率低是因?yàn)橹悼截愰_銷大
TestFunc2引用傳遞,效率高是因?yàn)楸苊饬酥悼截?,直接操作的就是?shí)參a本身

我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用

通過(guò)上述代碼的比較,發(fā)現(xiàn)傳值和指針在作為傳參以及返回值類型上效率相差很大。

??引用做返回值

int& Count()
{
   static int n = 0;
   n++;
   // ...
   return n;
}

我們先看看下面代碼會(huì)輸出什么結(jié)果?

int& Add(int a, int b)
{
    int c = a + b;
    return c;
}
int main()
{
    int& ret = Add(1, 2);
    Add(3, 4);
    cout << "Add(1, 2) is :"<< ret <<endl;
    return 0;
}

在Vs編譯運(yùn)行圖:結(jié)果是7,真的是正確嗎?
我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用

問(wèn)題分析:
如果函數(shù)返回時(shí),返回的對(duì)象已經(jīng)超出了函數(shù)作用域(即已經(jīng)被銷毀),那么不能返回該對(duì)象的引用,必須返回值。

在第一個(gè)示例中:

int& Add(int a, int b)
{
    int c = a + b;
    return c;
}

這里函數(shù)返回了局部變量c的引用,但c在函數(shù)返回后就已經(jīng)被銷毀了,所以這是一個(gè)未定義行為,輸出結(jié)果是不確定的。

而在第二個(gè)示例中:

int& Add(int a, int b)
{
    int c = a + b;
    return c;
}
int main()
{
    int& ret = Add(1, 2);
    Add(3, 4);
    cout << "Add(1, 2) is :"<< ret <<endl;
    return 0;
}

這里同樣是返回了局部變量c的引用,但是在main函數(shù)中又調(diào)用了一次Add函數(shù),這時(shí)第一次調(diào)用返回的引用ret已經(jīng)指向了一個(gè)不存在的對(duì)象,所以輸出結(jié)果也是未定義的。

函數(shù)返回引用時(shí)必須確保返回的對(duì)象在調(diào)用者作用域內(nèi)仍然存在,否則就會(huì)產(chǎn)生未定義行為。這是C++中函數(shù)返回引用需要特別注意的地方。
我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用

答案思考:
Visual Studio上運(yùn)行這段代碼,輸出結(jié)果是:

Add(1, 2) is :7

這個(gè)結(jié)果確實(shí)是未定義行為,但在某些情況下可能會(huì)輸出7。之所以會(huì)出現(xiàn)這種情況,是因?yàn)?strong>Visual Studio的編譯器在處理這種未定義行為時(shí)可能會(huì)做一些特殊的優(yōu)化或處理,導(dǎo)致在某些環(huán)境下能夠得到一個(gè)看似合理的結(jié)果。但這種行為是不可靠的,因?yàn)樗蕾囉诰唧w的編譯器實(shí)現(xiàn)細(xì)節(jié)。在不同的編譯器或環(huán)境下,輸出可能會(huì)完全不同。

正確的做法:是要么返回值,要么返回一個(gè)在調(diào)用者作用域內(nèi)仍然存在的對(duì)象的引用。這樣可以確保代碼的行為是可預(yù)測(cè)和可移植的。

??引用和指針的區(qū)別

  1. 語(yǔ)法概念:

    • 引用是變量的別名,沒(méi)有獨(dú)立的存儲(chǔ)空間,而是和其引用的實(shí)體共用同一塊內(nèi)存空間。
    • 指針是一個(gè)獨(dú)立的變量,存儲(chǔ)了另一個(gè)變量的內(nèi)存地址。
  2. 聲明語(yǔ)法:

    • 引用使用&符號(hào)聲明,如int& ref = x;
    • 指針使用*符號(hào)聲明,如int* ptr = &x;
  3. 操作方式:

    • 引用直接訪問(wèn)和操作其引用的實(shí)體,如ref = 10;
    • 指針需要先解引用(*)才能訪問(wèn)其指向的實(shí)體,如*ptr = 10;
  4. Null值:

    • 引用不能為空(Null),必須在聲明時(shí)初始化為一個(gè)有效的實(shí)體。
    • 指針可以為空(Null),指向空地址0x0。

讓我們看看例子來(lái)說(shuō)明引用和指針的區(qū)別:
假設(shè)我們有一個(gè)整型變量x,值為10。
使用引用:

int x = 10;
int& ref = x; // 聲明引用ref,它是x的別名
ref = 20; // 通過(guò)ref修改x的值
cout << "x = " << x << endl; // 輸出 x = 20

refx的引用,它們共享同一塊內(nèi)存空間。通過(guò)ref修改值,實(shí)際上是在修改x的值。 輸出x的值為20,因?yàn)?code>x的值已經(jīng)被修改了。

使用指針:

int x = 10;
int* ptr = &x; // 聲明指針ptr,存儲(chǔ)x的地址
*ptr = 20; // 通過(guò)ptr解引用并修改x的值
cout << "x = " << x << endl; // 輸出 x = 20

ptr是一個(gè)指向x的指針,存儲(chǔ)了x的內(nèi)存地址。通過(guò)*ptr解引用并修改值,實(shí)際上是在修改x的值。輸出x的值為20,因?yàn)?code>x的值已經(jīng)被修改了。

底層實(shí)現(xiàn)上實(shí)際是有空間的,因?yàn)?strong>引用是按照指針?lè)绞絹?lái)實(shí)現(xiàn)的。

int main()
{
	int a = 10;
	int& ra = a;
	ra = 20;

	int* pa = &a;
	*pa = 20;
	return 0;
}

我們來(lái)看下引用和指針的匯編代碼對(duì)比得出:在匯編中引用的底層邏輯還是指針,經(jīng)過(guò)編譯轉(zhuǎn)換成匯編,還是進(jìn)行指針的操作
我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用
引用和指針的不同點(diǎn):

  1. 引用概念上定義一個(gè)變量的別名,指針存儲(chǔ)一個(gè)變量地址。
  2. 引用在定義時(shí)必須初始化,指針沒(méi)有要求
  3. 引用在初始化時(shí)引用一個(gè)實(shí)體后,就不能再引用其他實(shí)體,而指針可以在任何時(shí)候指向任何一個(gè)同類型實(shí)體
  4. 沒(méi)有NULL引用,但有NULL指針
  5. sizeof中含義不同:引用結(jié)果為引用類型的大小,但指針始終是地址空間所占字節(jié)個(gè)數(shù)(32位平臺(tái)下占4個(gè)字節(jié))
  6. 引用自加即引用的實(shí)體增加1,指針自加即指針向后偏移一個(gè)類型的大小
  7. 有多級(jí)指針,但是沒(méi)有多級(jí)引用
  8. 訪問(wèn)實(shí)體方式不同,指針需要顯式解引用,引用編譯器自己處理
  9. 引用比指針使用起來(lái)相對(duì)更安全

??常引用

從上述代碼中,我們可以得出以下關(guān)于常引用的結(jié)論:

  1. 常量引用:
    const int a = 10;
    //int& ra = a;   // 該語(yǔ)句編譯時(shí)會(huì)出錯(cuò),a為常量
    const int& ra = a;

對(duì)于常量對(duì)象a,我們可以使用常引用const int& ra = a;來(lái)引用它。這樣做可以避免對(duì)常量進(jìn)行修改,直接使用非常引用int& ra = a;會(huì)在編譯時(shí)報(bào)錯(cuò),因?yàn)椴辉试S對(duì)常量進(jìn)行非常引用。
2. 字面量常引用:

// int& b = 10; // 該語(yǔ)句編譯時(shí)會(huì)出錯(cuò),b為常量

const int& b = 10;

我們可以使用常引用const int& b = 10;來(lái)引用字面量常量。這樣做可以避免創(chuàng)建臨時(shí)變量, 直接使用非常引用int& b = 10;會(huì)在編譯時(shí)報(bào)錯(cuò),因?yàn)樽置媪坎荒鼙环浅R谩?br> 3. 類型不匹配的常引用:

double d = 12.34;
//int& rd = d; // 該語(yǔ)句編譯時(shí)會(huì)出錯(cuò),類型不同
const int& rd = d;

根據(jù)類型不同的變量,如double d = 12.34;,我們可以使用常引用const int& rd = d;來(lái)引用它,直接使用非常引用int& rd = d;會(huì)在編譯時(shí)報(bào)錯(cuò),因?yàn)轭愋筒黄ヅ洹?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-859338.html


??總結(jié)

我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較,【C++的奇跡之旅】,c++,kotlin,android,性能優(yōu)化,C++引用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-859338.html

到了這里,關(guān)于我的C++奇跡之旅:值和引用的本質(zhì)效率與性能比較的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C++奇跡之旅:深入理解賦值運(yùn)算符重載

    C++奇跡之旅:深入理解賦值運(yùn)算符重載

    運(yùn)算符重載是C++中的一個(gè)重要特性,他允許我們?yōu)樽远x的類型定義自己的運(yùn)算符行為。通過(guò)運(yùn)算符重載, 我們可以使用與內(nèi)置數(shù)據(jù)類型相同的語(yǔ)法來(lái)操作自定義類型,從而提高代碼的可讀性和可維護(hù)性 。 還是我們熟悉的日期函數(shù): 然后我們定義兩個(gè)日期對(duì)象d1和d2: 當(dāng)你想

    2024年04月26日
    瀏覽(20)
  • C++奇跡之旅:探索類對(duì)象模型內(nèi)存的存儲(chǔ)猜想

    C++奇跡之旅:探索類對(duì)象模型內(nèi)存的存儲(chǔ)猜想

    上回我們學(xué)習(xí)了類的定義,初步了解了什么是類?類的定義,以及類的三個(gè)訪問(wèn)限定符: public , private , protected ,本小節(jié)將講解類的實(shí)例化,類對(duì)象模型的猜想存儲(chǔ),及三種簡(jiǎn)單類的計(jì)算。 在 C++ 中,類的實(shí)例化是指創(chuàng)建一個(gè)類的對(duì)象。當(dāng)我們定義了一個(gè)類之后,就可以根據(jù)

    2024年04月12日
    瀏覽(20)
  • C++奇跡之旅:從0開始實(shí)現(xiàn)日期時(shí)間計(jì)算器

    C++奇跡之旅:從0開始實(shí)現(xiàn)日期時(shí)間計(jì)算器

    通過(guò)前面學(xué)完了 C++ 的默認(rèn)成員函數(shù),實(shí)踐出真知,本小節(jié)我們將一起來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單上手的日期時(shí)間計(jì)算器,阿森和你一起一步一步的操作實(shí)現(xiàn)! 完整代碼在文章末尾哦 為了代碼的維護(hù)性和可觀型,我們?cè)谠O(shè)置三個(gè)文件頭文件 Date.h ,源文件 Date.cpp , Test.cpp 我們先把頭文

    2024年04月28日
    瀏覽(19)
  • 【C++的奇跡之旅(二)】C++關(guān)鍵字&&命名空間使用的三種方式&&C++輸入&輸出&&命名空間std的使用慣例

    【C++的奇跡之旅(二)】C++關(guān)鍵字&&命名空間使用的三種方式&&C++輸入&輸出&&命名空間std的使用慣例

    C++是在C的基礎(chǔ)之上,容納進(jìn)去了面向?qū)ο缶幊趟枷?,并增加了許多有用的庫(kù),以及編程范式 等。熟悉C語(yǔ)言之后,對(duì)C++學(xué)習(xí)有一定的幫助,本章節(jié)主要目標(biāo): 補(bǔ)充C語(yǔ)言語(yǔ)法的不足,以及C++是如何對(duì)C語(yǔ)言設(shè)計(jì)不合理的地方進(jìn)行優(yōu)化的,比如:作用 域方面、IO方面、函數(shù)方面、

    2024年04月09日
    瀏覽(22)
  • 【C++】C++ 引用詳解 ① ( 變量的本質(zhì) - 引入 “ 引用 “ 概念 | 引用語(yǔ)法簡(jiǎn)介 | 引用做函數(shù)參數(shù) | 復(fù)雜類型引用做函數(shù)參數(shù) )

    【C++】C++ 引用詳解 ① ( 變量的本質(zhì) - 引入 “ 引用 “ 概念 | 引用語(yǔ)法簡(jiǎn)介 | 引用做函數(shù)參數(shù) | 復(fù)雜類型引用做函數(shù)參數(shù) )

    \\\" 引用 \\\" 語(yǔ)法 是 C++ 語(yǔ)言中 特有的 , 在 C 語(yǔ)言中是沒(méi)有 引用 這個(gè)概念的 ; 分析 引用 之前 , 先回顧下 變量 : 在 【C 語(yǔ)言】變量本質(zhì) ( 變量概念 | 變量本質(zhì) - 內(nèi)存空間別名 | 變量存儲(chǔ)位置 - 代碼區(qū) | 變量三要素 ) 博客中 , 介紹了變量的本質(zhì) : 變量 的本質(zhì)是 內(nèi)存空間 的 \\\" 別名

    2024年02月11日
    瀏覽(37)
  • 開啟C++之旅(下):引用、內(nèi)聯(lián)函數(shù)及現(xiàn)代特性(auto和范圍for循環(huán))

    開啟C++之旅(下):引用、內(nèi)聯(lián)函數(shù)及現(xiàn)代特性(auto和范圍for循環(huán))

    上次介紹了:開啟C++之旅(上):探索命名空間與函數(shù)特性(缺省參數(shù)和函數(shù)重載) 今天就接著進(jìn)行c++入門的知識(shí)講解 引用 不是新定義一個(gè)變量,而是給已存在 變量取了一個(gè)別名 ,編譯器不會(huì)為引用變量開辟內(nèi)存空間,它和它引用的變量 共用 同一塊內(nèi)存空間。通過(guò)引用,

    2024年01月17日
    瀏覽(163)
  • C++性能優(yōu)化筆記-6-C++元素的效率差異-7-類型轉(zhuǎn)換

    C++性能優(yōu)化筆記-6-C++元素的效率差異-7-類型轉(zhuǎn)換

    在C++語(yǔ)法中,有幾種方式進(jìn)行類型轉(zhuǎn)換: 這些不同的方法有完全相同的效果。使用哪種方法是一個(gè)編程風(fēng)格的問(wèn)題。下邊討論下不同轉(zhuǎn)換的時(shí)間損耗。 。。。 有符號(hào)與無(wú)符號(hào)整數(shù)間的轉(zhuǎn)換只是讓編譯器以不同的方式解釋整數(shù)的比特。不檢查溢出,代碼不需要額外時(shí)間。 一個(gè)

    2024年02月03日
    瀏覽(23)
  • 我的AI之旅開始了

    我的AI之旅開始了

    知道重要,但是就是不動(dòng)。 今天告訴自己,必須開始學(xué)習(xí)了。 用這篇博文作為1月份AI學(xué)習(xí)之旅的起跑點(diǎn)吧。 從此,無(wú)懼AI,無(wú)懼編程。 AI之路就在腳下。 AI,在我理解,就是讓機(jī)器變得更加智能,能夠以人思考和行為的方式去實(shí)行某種操作,更大更快更強(qiáng)。 編程和AI的關(guān)系

    2024年01月16日
    瀏覽(21)
  • 我的蘋果手機(jī)的越獄之旅

    我的蘋果手機(jī)的越獄之旅

    最近因?yàn)闃I(yè)務(wù)需要,需要一臺(tái)越獄手機(jī);就把測(cè)試機(jī)6plus拿來(lái)做越獄使用,在此之前先大致說(shuō)明一下越獄的原理、應(yīng)用、流程以及可能存在的問(wèn)題: 越獄是指通過(guò)一些技術(shù)手段,使iOS設(shè)備可以訪問(wèn)到iOS系統(tǒng)的全部控制權(quán),從而可以實(shí)現(xiàn)更多的自定義和操作。以下是蘋果手機(jī)越

    2024年02月11日
    瀏覽(28)
  • 我的單片機(jī)入門之旅

    單片機(jī)作為現(xiàn)代電子技術(shù)的重要組成部分,廣泛應(yīng)用于各個(gè)領(lǐng)域。而作為一個(gè)初學(xué)者,我對(duì)單片機(jī)一無(wú)所知。但是,通過(guò)不斷的學(xué)習(xí)和實(shí)踐,我逐漸掌握了單片機(jī)的基本概念和使用方法。在我的單片機(jī)入門之旅中,經(jīng)歷了許多困難和挑戰(zhàn),但也取得了很大的進(jìn)步和收獲。 在開

    2024年03月22日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包