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

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

wordpress怎么做淘客網(wǎng)站百度瀏覽器官網(wǎng)在線使用

wordpress怎么做淘客網(wǎng)站,百度瀏覽器官網(wǎng)在線使用,上海網(wǎng)站建設(shè)升級(jí),閔行18路一、歷史 C是在C上繼承拓展的! java是一家公司(甲骨文)借鑒C生成的! C#是微軟借鑒java生成的! 二、命名空間 當(dāng)我們定義一個(gè)名叫rand的變量,但是由于stdlib頭文件里面有個(gè)函數(shù)跟rand重名!因此…

一、歷史

C++是在C上繼承拓展的!

java是一家公司(甲骨文)借鑒C++生成的!

C#是微軟借鑒java生成的!

二、命名空間

當(dāng)我們定義一個(gè)名叫rand的變量,但是由于stdlib頭文件里面有個(gè)函數(shù)跟rand重名!因此會(huì)發(fā)生命名沖突!

因此為了解決該問(wèn)題,C++引入了命名空間的定義!

同一個(gè)域里面不可以定義同一個(gè)變量!

不同的域里面可以定義同一個(gè)變量!(局部變量訪問(wèn)優(yōu)先)

常見(jiàn)的域有:類(lèi)域、命名空間域、局部域、全局域

#include<stdio.h>
#include<stdlib.h>int a = 0;
int main()
{int a = 1;printf("%d\n", a);printf("%d\n", ::a);return 0;
}

對(duì)于上面這段代碼,?打印的第一個(gè)a為局部變量;第二個(gè)::a為全局變量。

::被稱(chēng)為域作用限定域!

::的左邊為空白!(空格無(wú)影響),表示的就是在全局域訪問(wèn)!

#include<stdio.h>
#include<stdlib.h>
#include<iostream>int a = 0;
namespace bit
{int a = 1;
}
int main()
{// int a = 2;printf("%d\n", a);   // 打印結(jié)果為0//printf("%d\n", ::a);return 0;
}

默認(rèn)的訪問(wèn)順序?yàn)?局部域->全局域

如果不指定不會(huì)訪問(wèn)命名空間域!(默認(rèn)不會(huì)的)

#include<stdio.h>
#include<stdlib.h>
#include<iostream>//int a = 0;
namespace bit
{int a = 1;
}
int main()
{// int a = 2;printf("%d\n", a);//printf("%d\n", ::a);return 0;
}

代碼會(huì)直接報(bào)錯(cuò)!

有兩種方法來(lái)訪問(wèn)命名空間域:

  • 展開(kāi)了命名空間域!
  • 指定訪問(wèn)的的命名空間域!

1、展開(kāi)命名空間域

namespace bit
{int a = 1;
}
// 展開(kāi)命名空間
using namespace bit;

此時(shí)相當(dāng)于將命令空間中的a暴漏在全局域中!

#include<stdio.h>
#include<stdlib.h>
#include<iostream>int a = 0;
namespace bit
{int a = 1;
}
// 展開(kāi)命名空間
using namespace bit;int main()
{printf("%d\n", a);return 0;
}

此時(shí)會(huì)報(bào)錯(cuò),a變量不明確!因?yàn)閮蓚€(gè)變量都位于全局域當(dāng)中!?

2、指定命名空間

#include<stdio.h>
#include<stdlib.h>
#include<iostream>int a = 0;
namespace bit
{int a = 1;
}
// 展開(kāi)命名空間
using namespace bit;int main()
{int a = 2;printf("%d\n", a);printf("%d\n", ::a);printf("%d\n", bit::a);return 0;
}

通過(guò)作用域限定符指定命名空間,從而訪問(wèn)bit命令空間里面的變量!

展開(kāi)指的是編譯時(shí)是否會(huì)去命名空間中搜索!

最好不要輕易將命名空間暴漏給全局域!

3、命名空間的定義

  • 正常的命名空間定義

定義命名空間,需要使用到namespace關(guān)鍵字,后面跟命名空間的名字,然后接一對(duì){}即可,{}
中即為命名空間的成員。

命名空間中可以定義變量/函數(shù)/類(lèi)型!

namespace bit
{// 命名空間中可以定義變量/函數(shù)/類(lèi)型int rand = 10;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}
  • 命令空間可以嵌套
namespace N1
{int a = 0;int b;int Add(int left, int right){return left + right;}namespace N2{int a = 2;int d;int Sub(int left, int right){return left - right;}}
}

此時(shí)N1和N2的a為兩個(gè)不同的變量!

int main()
{printf("%d\n",N1::a);   // 訪問(wèn)N1中的aprintf("%d\n",N1::N2::a);   // 訪問(wèn)N2中的aprintf("%d\n",N1::Add(1,2));return 0;
}
  • 同一個(gè)工程中允許存在多個(gè)相同名稱(chēng)的命名空間,編譯器最后會(huì)合成同一個(gè)命名空間中。

例如有一個(gè)quequ.h的頭文件定義了如下:

namespace cc
{int x = 0;
}

有一個(gè)stack.h的頭文件定義了如下:

namespace cc
{int y = 0;
}

此時(shí)如果有一個(gè)test.c的文件:

#include"stack.h"
#include"queue.h"int main()
{printf("%d\n",cc::x);printf("%d\n",cc::y);return 0;
}

可以訪問(wèn)x和y!(合并到了一個(gè)命名空間!)

如何解決同一個(gè)命名空間定義變量名相同的變量?

使用命名空間的嵌套!

std標(biāo)準(zhǔn)庫(kù)

std也被稱(chēng)作C++標(biāo)準(zhǔn)庫(kù),包括STL庫(kù)和C++庫(kù)

? ? ? 在C++編程中,using namespace std; 是一條指令,用于告訴編譯器在當(dāng)前作用域中使用標(biāo)準(zhǔn)命名空間(std)。標(biāo)準(zhǔn)命名空間包含了C++標(biāo)準(zhǔn)庫(kù)中的所有函數(shù)、對(duì)象和類(lèi)型,例如cout、cin、vector、string等。?

詳細(xì)解釋

  • 命名空間(namespace):

命名空間是C++中的一種機(jī)制,用于防止命名沖突。標(biāo)準(zhǔn)庫(kù)中所有的名稱(chēng)都被定義在命名空間std中。例如,標(biāo)準(zhǔn)輸出流對(duì)象cout的完整名稱(chēng)是std::cout。

  • using namespace std;的作用:

當(dāng)你使用using namespace std;時(shí),你告訴編譯器在當(dāng)前作用域中默認(rèn)使用std命名空間中的所有名稱(chēng)。這意味著你可以直接使用cout、cin等,而不需要每次都寫(xiě)std::cout、std::cin。

   #include <iostream>using namespace std;int main() {cout << "Hello, World!" << endl;return 0;}

在這個(gè)例子中,由于使用了using namespace std;,我們可以直接使用cout和endl,而不需要寫(xiě)成std::cout和std::endl。?

注意事項(xiàng)

  • 命名沖突:

使用using namespace std;可能會(huì)導(dǎo)致命名沖突。如果你的代碼中包含了與標(biāo)準(zhǔn)庫(kù)中名稱(chēng)相同的變量或函數(shù)名,可能會(huì)引發(fā)沖突。例如:

   #include <iostream>using namespace std;void sort() {// 自己定義的sort函數(shù)}int main() {sort();  // 這是調(diào)用自己的sort函數(shù)還是標(biāo)準(zhǔn)庫(kù)的sort函數(shù)?return 0;}

在這種情況下,編譯器可能會(huì)產(chǎn)生混淆,不知道你是要調(diào)用標(biāo)準(zhǔn)庫(kù)中的sort函數(shù)還是你自己定義的sort函數(shù)。

推薦做法:
為了避免命名沖突,許多開(kāi)發(fā)者更傾向于在需要使用標(biāo)準(zhǔn)庫(kù)名稱(chēng)時(shí)顯式地使用std::前綴,特別是在大型項(xiàng)目或庫(kù)開(kāi)發(fā)中。

   #include <iostream>int main() {std::cout << "Hello, World!" << std::endl;return 0;}

這樣可以清楚地知道每個(gè)名稱(chēng)的來(lái)源,減少命名沖突的風(fēng)險(xiǎn)。

總之,using namespace std;?是一個(gè)方便的工具,可以簡(jiǎn)化代碼的書(shū)寫(xiě),但在使用時(shí)需要小心,特別是在大型項(xiàng)目中,以避免潛在的命名沖突。

<iostream> 是 C++ 的一個(gè)頭文件,用于包含輸入輸出流庫(kù)。這個(gè)庫(kù)提供了處理輸入和輸出的功能,例如使用 std::cout 輸出到控制臺(tái),或使用 std::cin 從控制臺(tái)讀取輸入。

總結(jié)來(lái)說(shuō):

  • #include<iostream>?用于引入輸入輸出功能。
  • using namespace std;?使得可以直接使用?std?命名空間中的標(biāo)識(shí)符,簡(jiǎn)化代碼書(shū)寫(xiě)。

將命名空間中某個(gè)成員引入

using N::b;
int main()
{printf("%d\n", N::a);printf("%d\n", b);return 0; ? ?
}

可以避免將整個(gè)命名空間展開(kāi),造成容易出錯(cuò)

總結(jié):命令空間是為了解決C語(yǔ)言的缺陷:即命名沖突!

三、C++輸入&輸出

std是C++標(biāo)準(zhǔn)庫(kù)的命名空間名,C++將標(biāo)準(zhǔn)庫(kù)的定義實(shí)現(xiàn)都放到這個(gè)命名空間中!

?<<是流插入運(yùn)算符,>>是流提取運(yùn)算符!
cout << "hello world";
  • 相當(dāng)于把"hello world"流入到顯示器當(dāng)中!
  • cout和cin是全局的流對(duì)象,endl是特殊的C++符號(hào),表示換行輸出,他們都包含在包含<?
    iostream >頭文件中。
cout << "hello world"<<'\n'<<endl;
  • 使用C++輸入輸出更方便,不需要像printf/scanf輸入輸出時(shí)那樣,需要手動(dòng)控制格式。
    C++的輸入輸出可以自動(dòng)識(shí)別變量類(lèi)型。

C++控制輸出精度和寬度比較復(fù)雜!且不容易記住,建議使用C語(yǔ)言的輸出形式控制精度!

printf的輸出比C++的cout輸出快!

  1. 緩沖機(jī)制

    • printf?使用的是C標(biāo)準(zhǔn)庫(kù)的?stdio.h,其輸出是基于緩沖區(qū)的。默認(rèn)情況下,標(biāo)準(zhǔn)輸出是行緩沖的,這意味著輸出會(huì)在遇到換行符時(shí)刷新。
    • cout?使用的是C++標(biāo)準(zhǔn)庫(kù)的?iostream,其輸出也是基于緩沖區(qū)的,但它還涉及到對(duì)象和流操作,這可能會(huì)增加一些開(kāi)銷(xiāo)。此外,cout?默認(rèn)是同步與C的標(biāo)準(zhǔn)輸出流(printf),這也會(huì)影響性能。
  2. 同步機(jī)制

    • C++的?iostream?庫(kù)默認(rèn)與C標(biāo)準(zhǔn)庫(kù)的?stdio?同步,以確保混合使用?printf?和?cout?時(shí)的輸出順序正確。這種同步機(jī)制會(huì)帶來(lái)額外的性能開(kāi)銷(xiāo)。
    • 你可以通過(guò)調(diào)用?std::ios::sync_with_stdio(false);?來(lái)禁用這種同步,從而提高?cout?的性能:
      ?#include <iostream>using namespace std;int main() {ios::sync_with_stdio(false);  // 禁用與stdio的同步cout << "Hello, World!" << endl;return 0;}?
  3. 格式化和類(lèi)型安全

    • printf?是一個(gè)基于格式字符串的函數(shù),它直接操作C風(fēng)格的字符串,效率較高,但缺乏類(lèi)型安全和靈活性。
    • cout?是類(lèi)型安全的,它使用運(yùn)算符重載來(lái)處理不同類(lèi)型的數(shù)據(jù),這雖然帶來(lái)了更高的靈活性和安全性,但也增加了運(yùn)行時(shí)的開(kāi)銷(xiāo)。
  4. 模板和流操作

    1. cout?使用了模板和流操作,這些都是C++語(yǔ)言特有的高級(jí)特性,雖然提供了更強(qiáng)大的功能和更好的類(lèi)型安全性,但也會(huì)引入額外的開(kāi)銷(xiāo)。

http://m.risenshineclean.com/news/62988.html

相關(guān)文章:

  • 和wordpressseo是付費(fèi)還是免費(fèi)推廣
  • 南寧品牌網(wǎng)站設(shè)計(jì)公司如何免費(fèi)建立一個(gè)網(wǎng)站
  • 南平網(wǎng)站設(shè)計(jì)百度下載app
  • 幫一個(gè)公司做網(wǎng)站多少錢(qián)北京網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣培訓(xùn)哪家好
  • wordpress多媒體設(shè)置成都比較靠譜的seo
  • 如何做自適應(yīng)網(wǎng)站珠海seo排名收費(fèi)
  • 荊門(mén)網(wǎng)站建設(shè)服務(wù)短視頻seo
  • 網(wǎng)站開(kāi)發(fā)的例子關(guān)鍵詞優(yōu)化排名查詢(xún)
  • 合肥網(wǎng)站優(yōu)化哪家好熱門(mén)seo推廣排名穩(wěn)定
  • wordpress采集文章內(nèi)容深圳網(wǎng)站營(yíng)銷(xiāo)seo電話
  • 個(gè)人購(gòu)物網(wǎng)站怎么做中國(guó)500強(qiáng)最新排名
  • 免費(fèi)企業(yè)網(wǎng)站cms系統(tǒng)網(wǎng)絡(luò)營(yíng)銷(xiāo)成功案例ppt免費(fèi)
  • 濮陽(yáng)中強(qiáng)網(wǎng)站建設(shè)域名注冊(cè)需要多久
  • 直銷(xiāo)網(wǎng)寧波seo搜索平臺(tái)推廣專(zhuān)業(yè)
  • 西安抖音代運(yùn)營(yíng)公司seo優(yōu)化是什么
  • wordpress經(jīng)典漏洞搜外seo
  • 濰坊程序設(shè)計(jì)網(wǎng)站建設(shè)公司代運(yùn)營(yíng)哪家比較可靠
  • 做網(wǎng)站系統(tǒng)用什么語(yǔ)言鄭州seo教程
  • 如何制作旅游網(wǎng)站鄭州關(guān)鍵詞優(yōu)化顧問(wèn)
  • 一個(gè)網(wǎng)站開(kāi)發(fā)流程圖永久免費(fèi)跨境瀏覽app
  • 科技有限公司可以做網(wǎng)站建設(shè)嗎?廣州網(wǎng)絡(luò)推廣公司有哪些
  • 匯算清繳在哪個(gè)網(wǎng)站做百度貼吧廣告投放
  • 網(wǎng)站建設(shè)的三網(wǎng)合一廣州全網(wǎng)推廣
  • 網(wǎng)站域名登記證明在線搭建網(wǎng)站
  • 學(xué)校ftp服務(wù)器做網(wǎng)站泰安seo
  • 做網(wǎng)站賣(mài)廣告位賺錢(qián)嗎百度站長(zhǎng)工具平臺(tái)登錄
  • 做網(wǎng)站是要編程嗎網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣總結(jié)
  • 南通網(wǎng)站外包2021年搜索引擎排名
  • 建設(shè)部城市管理監(jiān)督局網(wǎng)站官網(wǎng)南京百度seo排名
  • 網(wǎng)站開(kāi)發(fā)后臺(tái)注意事項(xiàng)咨詢(xún)公司