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

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

網(wǎng)站里可以添加視頻做背景嗎競價點擊軟件工具

網(wǎng)站里可以添加視頻做背景嗎,競價點擊軟件工具,做網(wǎng)站流程 優(yōu)幫云,個人建 行業(yè) 網(wǎng)站目錄 一、set 1.set的介紹 2.set的使用 2.1 set的模板參數(shù)列表 2.2 set的構(gòu)造 2.3 set的迭代器 2.4 set的容量 2.5 set的修改操作 2.6 set的使用舉例 二、map 1.map的介紹 2.map的使用 2.1 map的模板參數(shù)說明 2.2 map的構(gòu)造 2.3 map的迭代器 2.4 map的容量與元…

目錄

一、set

1.set的介紹

2.set的使用

2.1 set的模板參數(shù)列表

2.2 set的構(gòu)造

2.3 set的迭代器

2.4 set的容量

2.5 set的修改操作

2.6 set的使用舉例

二、map

1.map的介紹

2.map的使用

2.1 map的模板參數(shù)說明

2.2 map的構(gòu)造

2.3 map的迭代器

2.4 map的容量與元素訪問

2.5 map中元素的修改

2.6 map的使用舉例

三、multiset

1.multiset的介紹

2.multiset的使用

四、multimap

1.multimap的介紹

2.multimap的使用

五、OJ題練習使用

1.前K個高頻單詞

2.兩個數(shù)組的交集

六、完結(jié)撒?


一、set

1.set的介紹

set文檔介紹

翻譯:
1. set是按照一定次序存儲元素的容器。
2. 在 set 中,元素的 value 也標識它 (value 就是 key ,類型為 T) ,并且每個 value 必須是唯一的。
set中的元素不能在容器中修改( 元素總是 const) ,但是可以從容器中插入或刪除它們。
3.在內(nèi)部, set 中的元素總是按照其內(nèi)部比較對象 ( 類型比較 ) 所指示的特定嚴格弱排序準則進行 排序。
4. set容器通過 key 訪問單個元素的速度通常比 unordered_set 容器慢,但它們允許根據(jù)順序?qū)?/span>
子集進行直接迭代。
5. set在底層是用二叉搜索樹 ( 紅黑樹 ) 實現(xiàn)的。
注意:
1. map/multimap 不同, map/multimap 中存儲的是真正的鍵值對 <key, value> set 中只放
value ,但在底層實際存放的是由 <value, value> 構(gòu)成的鍵值對。
2. set 中插入元素時,只需要插入 value 即可,不需要構(gòu)造鍵值對。
3. set 中的元素不可以重復(fù) ( 因此可以使用 set 進行去重 ) 。
4. 使用 set 的迭代器遍歷 set 中的元素,可以得到有序序列
5. set 中的元素默認按照小于來比較
6. set 中查找某個元素,時間復(fù)雜度為: log2 n
7. set 中的元素不允許修改 ( 為什么 ? --- 麻煩 排序的維護,唯一性的維護,時間復(fù)雜度的維護)
8. set 中的底層使用二叉搜索樹 ( 紅黑樹 ) 來實現(xiàn)。

2.set的使用

2.1 set的模板參數(shù)列表

T: set 中存放元素的類型,實際在底層存儲 <value, value> 的鍵值對。
Compare set 中元素默認按照小于來比較
Alloc set 中元素空間的管理方式,使用 STL 提供的空間配置器管理

2.2 set的構(gòu)造

函數(shù)聲明功能介紹
set(const Compare& comp = Compare(),const Allocstor& = Allocator());構(gòu)造空的set
set(InputIterator first,InputIterator last,const Compare& comp = Compare(),const Allocator& = Allocator());用[first,last)區(qū)間中的元素構(gòu)造set
set(const set<Key,Compare,Allocator>& x);set的拷貝構(gòu)造

2.3 set的迭代器

函數(shù)聲明功能介紹
iterator begin()返回set中起始位置元素的迭代器
iterator end()
返回 set 中最后一個元素后面的迭代器
const_iterator cbegin()
const
返回 set 中起始位置元素的 const 迭代器
const_iterator cend() const
返回 set 中最后一個元素后面的 const 迭代器
reverse_iterator rbegin()
返回 set 第一個元素的反向迭代器,即 end
reverse_iterator rend()
返回 set 最后一個元素下一個位置的反向迭代器,
rbegin
const_reverse_iterator
crbegin() const
返回 set 第一個元素的反向 const 迭代器,即 cend
const_reverse_iterator
crend() const
返回 set 最后一個元素下一個位置的反向 const
代器,即 crbegin

2.4 set的容量

函數(shù)聲明功能介紹
bool empty() const檢測set是否為空,空返回true,否則返回false
size_type size() const返回set中有效元素個數(shù)

2.5 set的修改操作

函數(shù)聲明功能介紹
pair<iterator,bool> insert (const value_type& x )
set 中插入元素 x ,實際插入的是 <x, x> 構(gòu)成的
鍵值對,如果插入成功,返回 < 該元素在 set 中的
位置, true>, 如果插入失敗,說明 x set 中已經(jīng)
存在,返回 <x set 中的位置, false>
void erase ( iterator position )
刪除 set position 位置上的元素
size_type erase ( const key_type& x )
刪除 set 中值為 x 的元素,返回刪除的元素的個數(shù)
void erase ( iterator first, iterator last )
刪除 set [first, last) 區(qū)間中的元素
void swap ( set<Key,Compare,Allocator>& st);
交換 set 中的元素
void clear ( )
set 中的元素清空
iterator find ( const key_type& x ) const
返回 set 中值為 x 的元素的位置,沒有找到返回end()
size_type count ( const key_type& x ) const
返回 set 中值為 x 的元素的個數(shù)

2.6 set的使用舉例

#include <set>
void TestSet()
{// 用數(shù)組array中的元素構(gòu)造setint array[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0, 1, 3, 5, 7, 9, 2, 4,
6, 8, 0 };set<int> s(array, array + sizeof(array) / sizeof(array[0]));cout << s.size() << endl;// 正向打印set中的元素,從打印結(jié)果中可以看出:set可去重for (auto& e : s)cout << e << " ";cout << endl;// 使用迭代器逆向打印set中的元素for (auto it = s.rbegin(); it != s.rend(); ++it)cout << *it << " ";cout << endl;// set中值為3的元素出現(xiàn)了幾次cout << s.count(3) << endl;
}

二、map

1.map的介紹

map的文檔介紹

翻譯:
1.map是關(guān)聯(lián)容器,它按照特定的次序 ( 按照 key 來比較 ) 存儲由鍵值 key 和值 value 組合而成的元 素。
2. map 中,鍵值 key 通常用于排序和唯一的標識元素,而值 value 中存儲與此鍵值 key 關(guān)聯(lián)的
內(nèi)容。鍵值 key 和值 value 的類型可能不同,并且在 map 的內(nèi)部, key value 通過成員類型
value_type 綁定在一起,為其取別名稱為 pair: typedef pair<const key, T> value_type;
3. 在內(nèi)部, map 中的元素總是按照鍵值 key 進行比較排序的。
4.map 中通過鍵值訪問單個元素的速度通常比 unordered_map 容器慢,但 map 允許根據(jù)順序
對元素進行直接迭代 ( 即對 map 中的元素進行迭代時,可以得到一個有序的序列 ) 。
5.map 支持下標訪問符,即在 [ ] 中放入 key ,就可以找到與 key 對應(yīng)的 value 。
6.map 通常被實現(xiàn)為二叉搜索樹 ( 更準確的說:平衡二叉搜索樹 ( 紅黑樹 ))

2.map的使用

2.1 map的模板參數(shù)說明

key: 鍵值對中 key 的類型
T : 鍵值對中 value 的類型
Compare: 比較器的類型, map 中的元素是按照 key 來比較的,缺省情況下按照小于來比
較,一般情況下 ( 內(nèi)置類型元素 ) 該參數(shù)不需要傳遞,如果無法比較時 ( 自定義類型 ) ,需要用戶
自己顯式傳遞比較規(guī)則 ( 一般情況下按照函數(shù)指針或者仿函數(shù)來傳遞 )
Alloc :通過空間配置器來申請底層空間,不需要用戶傳遞,除非用戶不想使用標準庫提供的
空間配置器
注意:在使用 map 時,需要包含頭文件。

2.2 map的構(gòu)造

函數(shù)聲明功能介紹
map()構(gòu)造一個空的map

2.3 map的迭代器

函數(shù)聲明功能介紹
begin()和end()
begin: 首元素的位置, end 最后一個元素的下一個位置
cbegin()和cend()
begin end 意義相同,但 cbegin cend 所指向的元素不
能修改
rbegin()和rend()
反向迭代器, rbegin end 位置, rend begin 位置,其
++ -- 操作與 begin end 操作移動相反
crbegin()和crend()
rbegin rend 位置相同,操作相同,但 crbegin crend
指向的元素不能修改

2.4 map的容量與元素訪問

函數(shù)聲明功能介紹
bool empty ( ) const
檢測 map 中的元素是否為空,是返回
true ,否則返回 false
size_type size() const
返回 map 中有效元素的個數(shù)
mapped_type& operator[] (const
key_type& k)
返回 key 對應(yīng)的 value
問題:當 key 不在 map 中時,通過 operator 獲取對應(yīng) value 時會發(fā)生什么問題?

注意:在元素訪問時,有一個與 operator[] 類似的操作 at()( 該函數(shù)不常用 ) 函數(shù),都是通過
key 找到與 key 對應(yīng)的 value 然后返回其引用,不同的是: key 不存在時, operator[] 用默認
value key 構(gòu)造鍵值對然后插入,返回該默認 value at() 函數(shù)直接拋異常 。

2.5 map中元素的修改

函數(shù)聲明功能簡介
pair<iterator,bool> insert (const value_type& x)
map 中插入鍵值對 x ,注意 x 是一個鍵值 對,返回值也是鍵值對: iterator 代表新插入 元素的位置, bool 代表釋放插入成功
void erase ( iterator position )
刪除 position 位置上的元素
size_type erase ( const key_type& x )
刪除鍵值為 x 的元素
void erase ( iterator first, iterator last )
刪除 [first, last) 區(qū)間中的元素
void swap ( map<Key,T,Compare,Allocator>& mp)
交換兩個 map 中的元素
void clear ( )
map 中的元素清空
iterator find ( const key_type& x )
map 中插入 key x 的元素,找到返回該元 素的位置的迭代器,否則返回 end
const_iterator find ( const key_type& x ) const
map 中插入 key x 的元素,找到返回該元 素的位置的 const 迭代器,否則返回 cend
size_type count ( const key_type& x ) const
返回 key x 的鍵值在 map 中的個數(shù),注意 map key 是唯一的,因此該函數(shù)的返回值 要么為 0 ,要么為 1 ,因此也可以用該函數(shù)來
檢測一個 key 是否在 map

2.6 map的使用舉例

#include <string>
#include <map>
void TestMap()
{map<string, string> m;// 向map中插入元素的方式:// 將鍵值對<"peach","桃子">插入map中,用pair直接來構(gòu)造鍵值對m.insert(pair<string, string>("peach", "桃子"));// 將鍵值對<"peach","桃子">插入map中,用make_pair函數(shù)來構(gòu)造鍵值對m.insert(make_pair("banan", "香蕉"));// 借用operator[]向map中插入元素/*operator[]的原理是:用<key, T()>構(gòu)造一個鍵值對,然后調(diào)用insert()函數(shù)將該鍵值對插入到map中如果key已經(jīng)存在,插入失敗,insert函數(shù)返回該key所在位置的迭代器如果key不存在,插入成功,insert函數(shù)返回新插入元素所在位置的迭代器operator[]函數(shù)最后將insert返回值鍵值對中的value返回*/// 將<"apple", "">插入map中,插入成功,返回value的引用,將“蘋果”賦值給該引用結(jié)果,m["apple"] = "蘋果";// key不存在時拋異常//m.at("waterme") = "水蜜桃";cout << m.size() << endl;// 用迭代器去遍歷map中的元素,可以得到一個按照key排序的序列for (auto& e : m)cout << e.first << "--->" << e.second << endl;cout << endl;// map中的鍵值對key一定是唯一的,如果key存在將插入失敗auto ret = m.insert(make_pair("peach", "桃色"));if (ret.second)cout << "<peach, 桃色>不在map中, 已經(jīng)插入" << endl;elsecout << "鍵值為peach的元素已經(jīng)存在:" << ret.first->first << "--->"<< ret.first->second << " 插入失敗" << endl;// 刪除key為"apple"的元素m.erase("apple");if (1 == m.count("apple"))cout << "apple還在" << endl;elsecout << "apple被吃了" << endl;
}
【總結(jié)】
1. map 中的的元素是鍵值對
2. map 中的 key 是唯一的,并且不能修改
3. 默認按照小于的方式對 key 進行比較
4. map 中的元素如果用迭代器去遍歷,可以得到一個有序的序列
5. map 的底層為平衡搜索樹 ( 紅黑樹 ) ,查找效率比較高 O(log_2 N)
6. 支持 [] 操作符, operator[] 中實際進行插入查找。

三、multiset

1.multiset的介紹

multiset文檔介紹

[ 翻譯 ]
1. multiset 是按照特定順序存儲元素的容器,其中元素是可以重復(fù)的。
2. multiset 中,元素的 value 也會識別它 ( 因為 multiset 中本身存儲的就是 <value, value> 組成
的鍵值對,因此 value 本身就是 key key 就是 value ,類型為 T). multiset 元素的值不能在容器
中進行修改 ( 因為元素總是 const ) ,但可以從容器中插入或刪除。
3. 在內(nèi)部, multiset 中的元素總是按照其內(nèi)部比較規(guī)則 ( 類型比較 ) 所指示的特定嚴格弱排序準則進行排序。
4. multiset 容器通過 key 訪問單個元素的速度通常比 unordered_multiset 容器慢,但當使用迭
代器遍歷時會得到一個有序序列。
5. multiset 底層結(jié)構(gòu)為二叉搜索樹 ( 紅黑樹 )。
注意:
1. multiset 中在底層中存儲的是 <value, value> 的鍵值對
2. multiset 的插入接口中只需要插入即可
3. set 的區(qū)別是, multiset 中的元素可以重復(fù), set 是中 value 是唯一的
4. 使用迭代器對 multiset 中的元素進行遍歷,可以得到有序的序列
5. multiset 中的元素不能修改
6. multiset 中找某個元素,時間復(fù)雜度為 O(log_2 N)
7. multiset 的作用:可以對元素進行排序

2.multiset的使用

此處只簡單演示 set multiset 的不同,其他接口與 set 相同,可參考 set 。
#include <set>
void TestSet()
{int array[] = { 2, 1, 3, 9, 6, 0, 5, 8, 4, 7 };// 注意:multiset在底層實際存儲的是<int, int>的鍵值對multiset<int> s(array, array + sizeof(array) / sizeof(array[0]));for (auto& e : s)cout << e << " ";cout << endl;return 0;
}

四、multimap

1.multimap的介紹

multimap文檔鏈接

翻譯:
1. Multimaps 是關(guān)聯(lián)式容器,它按照特定的順序,存儲由 key value 映射成的鍵值對 <key,
value> ,其中多個鍵值對之間的 key 是可以重復(fù)的。
2. multimap 中,通常按照 key 排序和唯一地標識元素,而映射的 value 存儲與 key 關(guān)聯(lián)的內(nèi)
容。 key value 的類型可能不同,通過 multimap 內(nèi)部的成員類型 value_type 組合在一起,
value_type 是組合 key value 的鍵值對 :
typedef pair<const Key, T> value_type;
3. 在內(nèi)部, multimap 中的元素總是通過其內(nèi)部比較對象,按照指定的特定嚴格弱排序標準對
key 進行排序的。
4. multimap 通過 key 訪問單個元素的速度通常比 unordered_multimap 容器慢,但是使用迭代
器直接遍歷 multimap 中的元素可以得到關(guān)于 key 有序的序列。
5. multimap 在底層用二叉搜索樹 ( 紅黑樹 ) 來實現(xiàn)。
注意: multimap map 的唯一不同就是: map 中的 key 是唯一的,而 multimap key 是可以
重復(fù)的 。

2.multimap的使用

multimap 中的接口可以參考 map ,功能都是類似的。
注意:
1. multimap 中的 key 是可以重復(fù)的。
2. multimap 中的元素默認將 key 按照小于來比較
3. multimap 中沒有重載 operator[] 操作 ( 可思考下為什么 ?) 。(多個key與value沒有形成映射關(guān)系)
4. 使用時與 map 包含的頭文件相同。

?五、OJ題練習使用

1.前K個高頻單詞

題目:

基本思路:

使用map將所有單詞出現(xiàn)的次數(shù)進行存儲,在使用vector進行排序,再將前K個push_back到新的vector里面進行返回。

解題代碼:

class Solution {
public:struct kvCom{bool operator()(const pair<string,int> V1,const pair<string,int> V2){return (V1.second > V2.second) || (V1.second == V2.second && V1.first < V2.first);}};vector<string> topKFrequent(vector<string>& words, int k) {map<string,int> CountMap;for(auto& e : words){CountMap[e]++;}//按照int排序vector<pair<string,int>> v(CountMap.begin(),CountMap.end()); //stable_sort(v.begin(),v.end(),kvCom());sort(v.begin(),v.end(),kvCom());vector<string> vs;for(size_t i=0; i<k;i++){//cout<<v[i].first<<":"<<v[i].second<<endl;vs.push_back(v[i].first);}return vs;}
};

?2.兩個數(shù)組的交集

題目:

基本思路:
通過將兩個數(shù)組分別存進兩個set里面(這一步也完成了去重,防止出現(xiàn)多個交集),再用一個vector進行存儲返回,之后在其中一個set中查找是否存在另一個set中的值,若存在則push_back到vector中,循環(huán)操作,最后將vector進行返回。

解題代碼:

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {set<int> s1(nums1.begin(),nums1.end());//已經(jīng)完成去重工作set<int> s2(nums2.begin(),nums2.end());vector<int> v;for(auto e : s1){auto ret = s2.find(e);if(ret != s2.end()){v.push_back(*ret);}}return v;}
};

六、完結(jié)撒?

如果以上內(nèi)容對你有幫助不妨點贊支持一下,以后還會分享更多編程知識,我們一起進步。
最后我想講的是,據(jù)說點贊的都能找到漂亮女朋友?

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

相關(guān)文章:

  • 進口食品銷售銷售在那個網(wǎng)站做世界搜索引擎公司排名
  • 必應(yīng)網(wǎng)站收錄在哪在線種子資源庫
  • 做網(wǎng)站哪個服務(wù)器好一套完整的運營方案
  • 學(xué)校網(wǎng)站設(shè)計實驗報告seo個人優(yōu)化方案案例
  • 品牌規(guī)劃外貿(mào)網(wǎng)站推廣與優(yōu)化
  • wordpress 推薦 配置寧波核心關(guān)鍵詞seo收費
  • 可以做打賞視頻的網(wǎng)站全網(wǎng)引擎搜索
  • 高端網(wǎng)站定制建站企業(yè)培訓(xùn)課程ppt
  • 網(wǎng)站設(shè)計怎么做一點首頁就跳轉(zhuǎn)seo是什么意思蜘蛛屯
  • 網(wǎng)站建設(shè)是什么科目今日的新聞頭條10條
  • 北京大興網(wǎng)站建設(shè)公司咨詢產(chǎn)品關(guān)鍵詞
  • 萬州哪里有做網(wǎng)站的關(guān)鍵詞排名查詢工具
  • 自己做網(wǎng)站怎么修改語言營銷策略案例
  • 個人網(wǎng)站論文摘要網(wǎng)頁設(shè)計與制作期末作品
  • wordpress調(diào)用網(wǎng)站標題愛站網(wǎng)長尾關(guān)鍵詞搜索
  • 做網(wǎng)站公司哪家好百度競價開戶多少錢
  • 貴州住房和城鄉(xiāng)建設(shè)廳舊網(wǎng)站不受國內(nèi)限制的搜索引擎
  • 石家莊seo網(wǎng)站優(yōu)化價格seo網(wǎng)站優(yōu)化推廣費用
  • 肥西縣市建設(shè)局網(wǎng)站廣州seo公司如何
  • 百度競價做網(wǎng)站建設(shè)百度運營平臺
  • 貴陽市做網(wǎng)站公司網(wǎng)搜網(wǎng)
  • 不加www的網(wǎng)站免費推廣的網(wǎng)站平臺
  • 電子網(wǎng)站建設(shè)方案免費發(fā)帖推廣平臺有哪些
  • 做視頻網(wǎng)站有什么湖南最新消息今天
  • 常州網(wǎng)站制作哪家好推廣計劃書怎么寫
  • 蘭州seo快速優(yōu)化報價移動優(yōu)化課主講:夫唯老師
  • wordpress百度自動推送安裝失敗百度灰色詞優(yōu)化排名
  • 網(wǎng)站建設(shè)需要哪些資料百度推廣官網(wǎng)登錄
  • 蘇州優(yōu)化網(wǎng)站建設(shè)seo知識培訓(xùn)
  • 陽江網(wǎng)站制作公司網(wǎng)時代教育培訓(xùn)機構(gòu)官網(wǎng)