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

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

可以做pos機(jī)的網(wǎng)站關(guān)鍵詞排名怎么查

可以做pos機(jī)的網(wǎng)站,關(guān)鍵詞排名怎么查,discuz與wordpress會員,有關(guān)手機(jī)網(wǎng)站建設(shè)vector的使用 1.vector的介紹2.vector的使用3.Member functions3.1構(gòu)造函數(shù)3.2拷貝構(gòu)造3.3賦值運(yùn)算符重載 4.iterator5.capacity6.Element access7.增刪查改7.1增7.2刪7.3查7.4改 1.vector的介紹 1.vector是表示可變大小數(shù)組的序列容器. 2.vector也采用連續(xù)空間存儲元素&#x…

vector的使用

  • 1.vector的介紹
  • 2.vector的使用
  • 3.Member functions
    • 3.1構(gòu)造函數(shù)
    • 3.2拷貝構(gòu)造
    • 3.3賦值運(yùn)算符重載
  • 4.iterator
  • 5.capacity
  • 6.Element access
  • 7.增刪查改
    • 7.1增
    • 7.2刪
    • 7.3查
    • 7.4改

1.vector的介紹

1.vector是表示可變大小數(shù)組的序列容器.

2.vector也采用連續(xù)空間存儲元素,所以vector可以采用下標(biāo)的方法對元素進(jìn)行訪問,但是又不想數(shù)組,它的大小是可以動態(tài)改變的。

3.vector動態(tài)分配數(shù)組來存儲它的元素,當(dāng)新元素插入時,可能需要重新分配空間,把全部元素移到這個數(shù)組。就時間而言,這是一個比較大的開銷,但是并不是每次插入元素,vector都會擴(kuò)容。

4.vector會分配額外多的空間以適應(yīng)可能的增長,所以存儲空間要比實(shí)際需要的存儲空間更大。不同庫采用不同的方法來進(jìn)行空間的分配。

5.與其他動態(tài)系列容器相比(deques,lists…),vector訪問元素時更加高效,在末尾插入和刪除也更高效,對于不在末尾插入和刪除的操作,效率更低。

2.vector的使用

學(xué)習(xí)容器一定要學(xué)會查看文檔,vector的文檔介紹,下面我們介紹一些重點(diǎn)掌握的接口

3.Member functions

(constructor)構(gòu)造函數(shù)聲明接口說明
vector()(重點(diǎn))無參構(gòu)造
size_type n, const value_type& val = value_type()構(gòu)造并初始化n個val
vector (const vector& x); (重點(diǎn))拷貝構(gòu)造
vector (InputIterator first, InputIterator last)使用迭代器進(jìn)行初始化構(gòu)造

3.1構(gòu)造函數(shù)

在這里插入圖片描述
在這里插入圖片描述

3.2拷貝構(gòu)造

	vector<int> v3(v2);for (auto e : v3){cout << e << " ";}cout << endl;

在這里插入圖片描述

3.3賦值運(yùn)算符重載

在這里插入圖片描述

4.iterator

iterator的使用接口說明
begin(重點(diǎn))獲取第一個數(shù)據(jù)位置的iterator/const_iterator
end (重點(diǎn))獲取最后一個數(shù)據(jù)的下一個位置的iterator/const_iterator
rbegin獲取最后一個數(shù)據(jù)位置的reverse_iterator
rend獲取第一個數(shù)據(jù)前一個位置的reverse_iterator
void test2()
{//先拷貝構(gòu)造函數(shù)的隱式類型轉(zhuǎn)換,然后再走拷貝構(gòu)造函數(shù)vector<int> v = {1,2,3,4,5,6,7,8,9,10};//iterator通用的訪問方式vector<int>::iterator it = v.begin();while (it != v.end()){cout << *it << " ";++it;}cout << endl;
}//范圍for底層被替換成迭代器,這里不再敘述

到這里可能會覺得vector ,string看似相似;其實(shí)vector并不能替代string
1.接口不一樣
2.string以\0結(jié)尾,vector不一定
3.如比較大小,vector不一定是字符

5.capacity

補(bǔ)充知識:

int main()
{//請問這里i和k是說明結(jié)果呢?int i = int();int k = int(10);return 0;
}

在這里插入圖片描述
發(fā)現(xiàn)內(nèi)置類型,有了構(gòu)造。這是因?yàn)橛辛四0逯?#xff0c;為了兼容模板,不知道T到底是自定義類型還是內(nèi)置類型,如果是內(nèi)置類型難道就報錯嗎?
所以有了模板之后,內(nèi)置類型有了構(gòu)造。

容量空間接口說明
size獲取數(shù)據(jù)個數(shù)
capacity獲取容量大小
empty判斷是否為空
resize(重點(diǎn))改變vector的size
reserve (重點(diǎn))改變vector的capacity

在這里插入圖片描述
看不懂上面的形參,可以參照下面的
在這里插入圖片描述


void test3()
{vector<int> v;//改變v的size大小,并且初始化v.resize(10);for (auto e : v){cout << e << " ";}cout << endl;
}

在這里插入圖片描述
這里就可以把剛才補(bǔ)充的知識點(diǎn)解釋清楚,為什么要有內(nèi)置類型構(gòu)造?
不可能T都是自定義類型,T如果是內(nèi)置類型就報錯嗎?
所以有了模板之后內(nèi)置類型構(gòu)造有了意義。

resize有三種情況

1.n<size
刪除數(shù)據(jù)

2.size<n<capacity
插入數(shù)據(jù)

3.n>capacity
擴(kuò)容+插入數(shù)據(jù)

void test3()
{//測試vs下vector擴(kuò)容機(jī)制size_t capacity = v.capacity();cout << "capacity:" << capacity << endl;for (int i = 0; i < 1000; ++i){v.push_back(i);if (capacity != v.capacity()){capacity = v.capacity();cout << "capacity changed:" << capacity << endl;}}
}

在這里插入圖片描述
我們知道頻繁擴(kuò)容,會有時間開銷,如果我們提前知道要開辟空間大小,這樣就減少了擴(kuò)容的時間開銷。
在這里插入圖片描述
在這里插入圖片描述
不同編譯器擴(kuò)容機(jī)制是不一樣的。和string一樣,在Linux下每次擴(kuò)容2倍。

注意:

resize,reserve比當(dāng)前容量小時,都不會縮容。
在這里插入圖片描述
這里以時間換空間。

如何就想縮容,使用下面這個函數(shù)
把空間縮到size;
在這里插入圖片描述
在這里插入圖片描述

6.Element access

在這里插入圖片描述

訪問接口說明
operator[] (重點(diǎn))像數(shù)組一樣訪問

在這里插入圖片描述

void test4()
{vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);for (size_t i = 0; i < v.size(); ++i){cout << v[i] << " ";}cout << endl;}

const和非const函數(shù)在string詳細(xì)說明,這里不再敘述。

這里其實(shí)有一個問題,如果不小心真的很容易犯錯誤。
在這里插入圖片描述

在這里插入圖片描述

v.[i]是報斷言錯誤,v.at(i)拋異常。
所以這樣的去訪問一定要注意。

解決方法

pusk_back沒有那種檢查機(jī)制,就沒問題。
在這里插入圖片描述

設(shè)置size大小
在這里插入圖片描述

7.增刪查改

vector增刪查改接口說明
push_back(重點(diǎn))尾插
pop_back (重點(diǎn))尾刪
find查找。(注意這個是算法模塊實(shí)現(xiàn),不是vector的成員接口)
insert在position之前插入val
erase刪除position位置的數(shù)據(jù)
swap交換兩個vector的數(shù)據(jù)空間

7.1增

push_back

在這里插入圖片描述
在這里插入圖片描述

push_back 不直接頭插(需要挪動數(shù)據(jù),效率低,建議少用)

insert

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

7.2刪

pop_back

在這里插入圖片描述

在這里插入圖片描述

erase

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

7.3查

vector沒有實(shí)現(xiàn)find成員函數(shù),因?yàn)関ector,list等等都是找到返回位置,所以算法庫里實(shí)現(xiàn)了模板,可以使用。
在這里插入圖片描述

void test6()
{vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);auto it = find(v.begin(), v.end(), 3);if (it != v.end()){v.insert(it, 30);}
}

7.4改

改的話就用迭代器+[ ]就可以了。
在這里插入圖片描述

關(guān)于vector接口的使用就說到這里,下一篇來模擬實(shí)現(xiàn)vector。喜歡的點(diǎn)贊,評論,收藏加關(guān)注哦。

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

相關(guān)文章:

  • tripod wordpressseo免費(fèi)課程視頻
  • 如何做自助網(wǎng)站百度如何收錄網(wǎng)站
  • 沈陽建設(shè)工程信息網(wǎng) 最佳中項(xiàng)網(wǎng)公眾號seo排名優(yōu)化
  • 網(wǎng)絡(luò)服務(wù)器設(shè)備福清市百度seo
  • 國家企業(yè)信用信息公示網(wǎng)官網(wǎng)查詢seo平臺有哪些
  • 網(wǎng)站建設(shè)饣金手指科杰十二西安百度
  • 十大黃臺軟件app下載如何提高搜索引擎優(yōu)化
  • css怎么做響應(yīng)式網(wǎng)站排名優(yōu)化外包公司
  • 凡科建站的怎么取消手機(jī)網(wǎng)站怎樣建立自己的網(wǎng)站平臺
  • 哪些網(wǎng)站可以做ppt賺錢域名注冊網(wǎng)
  • stanley工具網(wǎng)站開發(fā)品牌策略
  • 室內(nèi)設(shè)計學(xué)校排行榜合肥正規(guī)的seo公司
  • 英文版網(wǎng)站案例廣州營銷課程培訓(xùn)班
  • 根據(jù)網(wǎng)站日志做seoseo就業(yè)前景
  • 醫(yī)院網(wǎng)站建設(shè)情況百度競價是什么意思?
  • 免費(fèi)營銷網(wǎng)站制作模板搜索引擎的網(wǎng)址有哪些
  • 溫江建網(wǎng)站免費(fèi)推廣網(wǎng)站有哪些
  • 三五互聯(lián)做網(wǎng)站嗎如何進(jìn)行品牌宣傳與推廣
  • 國外免費(fèi)建站腦白金網(wǎng)絡(luò)營銷
  • 武漢品牌網(wǎng)站設(shè)計海外發(fā)布新聞
  • 池州網(wǎng)站建設(shè)開發(fā)合肥網(wǎng)絡(luò)推廣優(yōu)化公司
  • 云南網(wǎng)站制作公司搜索引擎優(yōu)化需要多少錢
  • 做標(biāo)識的網(wǎng)站 知乎百度搜索推廣方法
  • 網(wǎng)站seo診斷工具如何做好線上推廣
  • 雨默合肥做網(wǎng)站推廣永久觀看不收費(fèi)的直播
  • 進(jìn)入網(wǎng)站后臺管理系統(tǒng)站長網(wǎng)站
  • 本校網(wǎng)站建設(shè)小紅書信息流廣告投放
  • 教育房地產(chǎn) 網(wǎng)站建設(shè)成都seo達(dá)人
  • 網(wǎng)站建設(shè)需要公司谷歌搜索引擎免費(fèi)
  • 移動互聯(lián)網(wǎng)應(yīng)用程序指的是什么搜索引擎營銷優(yōu)化診斷訓(xùn)練