国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

煙臺網(wǎng)站制作公司網(wǎng)站發(fā)布與推廣方案

煙臺網(wǎng)站制作公司,網(wǎng)站發(fā)布與推廣方案,wordpress打賞積分代碼,網(wǎng)站建設論文題目這篇就一直更新一些C的選擇題和編程題了。 目錄 筆試題1 答案及解析1 筆試題2 答案及解析2 力扣編程題 88. 合并兩個有序數(shù)組 解析代碼 349. 兩個數(shù)組的交集 解析代碼 60. 排列序列 解析代碼 46. 全排列 解析代碼 本篇完。 筆試題1 1. 以下哪種STL容器中的對象…

這篇就一直更新一些C++的選擇題和編程題了。

目錄

筆試題1

答案及解析1

筆試題2

答案及解析2

力扣編程題

88.?合并兩個有序數(shù)組

解析代碼

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

解析代碼

60.?排列序列

解析代碼

46.?全排列

解析代碼

本篇完。


筆試題1

1. 以下哪種STL容器中的對象是連續(xù)存儲的:()

A.list

B.vector

C.map

D.set

2.?STL中的一級容器有:()

A.vector、deque、list、set、multiset、map、multimap

B.序列式容器、關聯(lián)式容器、容器適配器

C.set、multiset、map、multimap

D.vector、deque、list

3.?以下STL的容器存放的數(shù)據(jù),哪個肯定是排好序的()

A.vector

B.deque

C.list

D.map

4.?當很頻繁地對序列中部進行插入和刪除操作時,應該選擇使用的容器是()

A.vector

B.list

C.deque

D.stack

5.?下面有關vector和list的區(qū)別,描述錯誤的是? ()

A.vector擁有一段連續(xù)的內(nèi)存空間,因此支持隨機存取,如果需要高效的隨即存取

B.list擁有一段不連續(xù)的內(nèi)存空間,如果需要大量的插入和刪除,應該使用list

C.vector<int>::iterator支持“+”、“+=”、“<”等操作符

D.list<int>::iterator則不支持“+”、“+=”、“<”等操作符運算,但是支持了[ ]運算符

6.?關于vector<>初始化問題下面那個是非法的??()

A.vector<string> sVec;

B.vector<vector<int>> ivvec;

C.vector<vector<string>> svvec( "hello");

7.?T是一個數(shù)據(jù)類型,關于std::vector::at 和 std::vector::operator[] 描述正確的是: ()

A.at總是做邊界檢查, operator[] 不做邊界檢查

B.at不做邊界檢查, operator[] 做邊界檢查

C.at和operator[] 是一樣的

D.at下標越界拋異常,operator[]下標越界觸發(fā)斷言

8.?STL中的unordered_map和priority_queue使用的底層數(shù)據(jù)結構分別是什么?()

A.rbtree,queue

B.hashtable,heap

C.rbtree,heap

D.hashtable,queue

9.?map和unordered_map的區(qū)別說法錯誤的是()

A.map的底層是紅黑樹,unordered_map的底層結構是哈希表

B.map是有序的,unordered_map不是,且map的查詢效率更高

C.map和unordered_map底層存儲的都是鍵值對

D.map和unordered_map的應用場景不同

10.?下面關于deque說法正確的是()

A.deque沒有vector尾插效率高

B.deque的底層是一段連續(xù)空間

C.如果要對集合中的元素進行排序時,元素不適合放在deque中

D.deque是priority_queue的底層默認容器

答案及解析1

1. B

??A:錯誤,list的底層結構為帶頭結點的雙向循環(huán)鏈表,是鏈式結構

??B:正確,vector是動態(tài)類型順序表,底層是一段連續(xù)空間

??C:錯誤,map底層是紅黑樹,樹形結構

??D:錯誤,set底層是紅黑樹,樹形結構

2. D

??一級容器即序列式容器(存的不是)

??A:錯誤,set、multiset、map、multimap是關聯(lián)式容器,不是序列式容器

??B:錯誤,非題目所問

??C:錯誤,都是關聯(lián)式容器

??D:正確

3. D

map的底層是紅黑樹,紅黑樹是二叉搜索樹,二叉搜索樹中的元素如果按照中序遍歷,可以得到一個有序序列

4. B

頻繁的向序列中插入和刪除元素時,應該選擇鏈式結構

list底層結構為:帶頭結點的雙向循環(huán)鏈表

5. C

??A:正確:構造了一個空的vector,里面放置的是string類型的對象

??B:正確:構造了一個空的動態(tài)二維數(shù)組

??C:錯誤,svvec是二維的,vector套vector,不能直接使用"hello"構造

6. C

??A:正確:構造了一個空的vector,里面放置的是string類型的對象

??B:正確:構造了一個空的動態(tài)二維數(shù)組

??C:錯誤,svvec是二維的,vector套vector,不能直接使用"hello"構造

7. D

??at和operator[]都是通過下標獲取對應的元素,兩個的不同是:

??at在下標越界時,拋異常

??operator[]在下標越界時,觸發(fā)斷言

8. B

unordered_map底層使用的是哈希表,priority_queue底層使用的是堆

9. B

??A:正確

??B:錯誤,map底層是紅黑樹,查詢效率為O(logN),unordered_map底層是哈希表,查詢效率為 O(1),?unordered_map查詢的效率更高

??C:正確

??D:正確,map適合要求結果有序的常見,unordered_map適合是否有序無關,更關注查詢效率的場景

10. C

??A:錯誤,如果在不擴容的情況下deque和vector相同,需要擴容時就不同了,vector擴容需要搬移 大量的元素,deque不需要

??B:錯誤,deque是分段連續(xù)的,類似動態(tài)的二維數(shù)組

??C:正確,因為要排序就需要遍歷,而deque不適合編譯,因為其在遍歷時,要不斷的去檢測迭代 器是否在空間邊界

??D:錯誤,priority_queue底層的默認容器是vector

筆試題2

1. 下面關于適配器說法正確的是()

A.在STL中,stack和queue與vector一樣,都是容器

B.STL中只有容器適配器

C.適配器有自己獨立的底層數(shù)據(jù)結構,不需要借助其他結構

D.適配器是一種設計模式,該種模式是將一個接口包裝成客戶希望的另一個接口

2.?下面哪一個不是適配器()

A.stack

B.queue

C.反向迭代器

D.以上都是

3.?關于仿函數(shù)說法正確的是()

A.仿函數(shù)就是一個函數(shù)

B.仿函數(shù)可以是靜態(tài)成員函數(shù)

C.仿函數(shù)是函數(shù)對象,可以像函數(shù)調(diào)用方式使用的對象

D.仿函數(shù)與函數(shù)指針作用不同

4.?關于仿函數(shù)說法錯誤的是()

A.仿函數(shù)可以使算法功能更加靈活

B.如果想要讓一個類的對象按照函數(shù)方式使用,只需在其中將()重載即可

C.lambda表達式底層實際就是按照仿函數(shù)實現(xiàn)的

D.仿函數(shù)與函數(shù)指針都可以增加算法的靈活性

5. 填寫下面空格

1. merge()算法的功能是:_______________________________________________

2. reverse()算法的功能是:_____________________________________________

3. unique()算法的功能是:______________________________________________

4. next_permutation()算法的功能是:____________________________________

5. sort()算法的功能是:_______________________________________________

答案及解析2

1. D

??A:錯誤,在STL中stack和queue被認為是容器適配器,因為它們的底層結構是直接將deque封裝 了一下

??B:錯誤,除了容器適配器,還有迭代器適配器,函數(shù)適配器

??C:錯誤,適配器沒有自己獨立的底層數(shù)據(jù)結構,是將其他結構拿過來重新包裝的

??D:正確,迭代器模式概念

2. D

??A:正確,stack是對deque的重新封裝

??B:正確,queue是對deque的重新封裝

??C:正確,反向迭代器失對正向迭代器的封裝

??D:錯誤

3. C

??A:錯誤,仿函數(shù)是一個類中重載了(),該類的對象可以像函數(shù)一樣使用的對象

??B:錯誤,仿函數(shù)是依靠對象調(diào)用的,沒有對象無法使用,因為不能是靜態(tài)成員函數(shù)

??C:正確

??D:錯誤,作用基本是類似的,都是增加算法的靈活性,只不過C++中使用仿函數(shù)更多

4. B

A:正確,STL中的算法都是通用的,有些算法具體的做的事情需要用戶通過仿函數(shù)方式定制

B:錯誤,是重載()而不是(],注意看題

C:正確,lambda表達式編譯器在編譯時會在底層將其轉化為仿函數(shù)

D:正確

  1. merge(first1, last1,first2,last2, resutl)算法的功能是:將兩個有序序列合并成一個序列保存到result中,合并好之后依然有序
  2. reverse(first, last)算法的功能是:對[first, last)區(qū)間中的元素逆序
  3. unique(first, last)算法的功能是:對[first, last)區(qū)間中的元素去重
  4. next_permutation(first,last)算法的功能是:獲取當前序列的下一個排列組合
  5. sort(first,last)算法的功能是:對[first, last)區(qū)間中的元素排序,重載版本可以指定排升序還是降序

力扣編程題

88.?合并兩個有序數(shù)組

給你兩個按?非遞減順序?排列的整數(shù)數(shù)組?nums1?和?nums2,另有兩個整數(shù)?m?和?n?,分別表示?nums1?和?nums2?中的元素數(shù)目。

請你?合并?nums2?到?nums1?中,使合并后的數(shù)組同樣按?非遞減順序?排列。

注意:最終,合并后數(shù)組不應由函數(shù)返回,而是存儲在數(shù)組?nums1?中。為了應對這種情況,nums1?的初始長度為?m + n,其中前?m?個元素表示應合并的元素,后?n?個元素為?0?,應忽略。nums2?的長度為?n?。

示例 1:

輸入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
輸出:[1,2,2,3,5,6]
解釋:需要合并 [1,2,3] 和 [2,5,6] 。
合并結果是 [1,2,2,3,5,6] ,其中斜體加粗標注的為 nums1 中的元素。

示例 2:

輸入:nums1 = [1], m = 1, nums2 = [], n = 0
輸出:[1]
解釋:需要合并 [1] 和 [] 。
合并結果是 [1] 。

示例 3:

輸入:nums1 = [0], m = 0, nums2 = [1], n = 1
輸出:[1]
解釋:需要合并的數(shù)組是 [] 和 [1] 。
合并結果是 [1] 。
注意,因為 m = 0 ,所以 nums1 中沒有元素。nums1 中僅存的 0 僅僅是為了確保合并結果可以順利存放到 nums1 中。

提示:

  • nums1.length == m + n
  • nums2.length == n
  • 0 <= m, n <= 200
  • 1 <= m + n <= 200
  • -109 <= nums1[i], nums2[j] <= 109

解析代碼

C語言寫過了,雙指針

class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int end = m + n - 1; // 雙指針if(m == 0){nums1[0] = nums2[0];}while(n > 0 && m > 0){if(nums1[m-1] >= nums2[n-1]) // 小的放后面{nums1[end--] = nums1[m-1];m--;}else{nums1[end--] = nums2[n-1];n--;}}while(n > 0) // 第二個數(shù)組還有就拷貝過去{nums1[end--] = nums2[n-1];n--;}}
};

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

給定兩個數(shù)組?nums1?和?nums2?,返回?它們的交集?。輸出結果中的每個元素一定是?唯一?的。我們可以?不考慮輸出結果的順序?。

示例 1:

輸入:nums1 = [1,2,2,1], nums2 = [2,2]
輸出:[2]

示例 2:

輸入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出:[9,4]
解釋:[4,9] 也是可通過的

提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

解析代碼

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set s1(nums1.begin(),nums1.end()); // 去重unordered_set s2(nums2.begin(),nums2.end());vector<int> retV;if(s1.size() <= s2.size()){for(const auto& e : s1){if(s2.find(e) != s2.end()){retV.push_back(e);}}}else{for(const auto& e : s2){if(s1.find(e) != s1.end()){retV.push_back(e);}}}return retV;}
};

60.?排列序列

給出集合?[1,2,3,...,n],其所有元素共有?n!?種排列。

按大小順序列出所有排列情況,并一一標記,當?n = 3?時, 所有排列如下:

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

給定?n?和?k,返回第?k?個排列。

示例 1:

輸入:n = 3, k = 3
輸出:"213"

示例 2:

輸入:n = 4, k = 9
輸出:"2314"

示例 3:

輸入:n = 3, k = 1
輸出:"123"

提示:

  • 1 <= n <= 9
  • 1 <= k <= n!

解析代碼

這題是困難題,和下面一題一樣應該不提倡用next_permutation的,但沒學高階算法就先這樣用了

next_permutation函數(shù)在頭文件<algorithm>中,作用是是生成給定序列的下一個較大排序,直到序列按降序排列為止。到這里還需要強調(diào)的一點是,如果你希望生成所有的排列方式,一定要先將序列按升序排列,這里可以與sort函數(shù)結合起來使用,先用sort升序排列,再調(diào)用next_permutation函數(shù)。

class Solution {
public:string getPermutation(int n, int k) {string str = string("123456789").substr(0,n);while(--k){next_permutation(str.begin(), str.end());}return str;}
};

46.?全排列

給定一個不含重復數(shù)字的數(shù)組?nums?,返回其?所有可能的全排列?。你可以?按任意順序?返回答案。

示例 1:

輸入:nums = [1,2,3]
輸出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

輸入:nums = [0,1]
輸出:[[0,1],[1,0]]

示例 3:

輸入:nums = [1]
輸出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums?中的所有整數(shù)?互不相同

解析代碼

提倡不用next_permutation的,但沒學高階算法就先這樣用了,先用sort升序排列

class Solution {
public:vector<vector<int>> permute(vector<int>& nums) {vector<vector<int>> vv;sort(nums.begin(), nums.end());do{vv.push_back(nums);}while(next_permutation(nums.begin(), nums.end()));return vv;}
};

本篇完。

C++到這基本介紹了,有時間可以回去復習復習,還有一兩篇關于多線程的問題放到Linux操作系統(tǒng)之后再放出來了,到這C++也夠用了。

下一篇:零基礎Linux_1(前期準備)Linux發(fā)展史和環(huán)境安裝。

下下篇:零基礎Linux_2(基本指令_上)目錄/文件的顯示跳轉創(chuàng)建刪除。

http://aloenet.com.cn/news/46806.html

相關文章:

  • wordpress主題安裝說明seo主要做什么
  • wordpress 中介免費seo快速收錄工具
  • ui做網(wǎng)站實例廣告公司業(yè)務推廣
  • 蘇州公司網(wǎng)頁制作seo推廣專員工作好做嗎
  • 網(wǎng)站中的游戲是怎么做的無錫百度快速優(yōu)化排名
  • 寧波做網(wǎng)站定制客戶管理軟件crm排名
  • 建設網(wǎng)站軟件下載html做一個簡單的網(wǎng)頁
  • 常州網(wǎng)站建設推廣網(wǎng)絡營銷公司全網(wǎng)推廣公司
  • 做網(wǎng)站和自媒體哪個好seo全稱是什么意思
  • 做設計網(wǎng)站模塊的網(wǎng)站杭州網(wǎng)絡優(yōu)化公司排名
  • 做網(wǎng)站月度總結如何做品牌推廣方案
  • 嵌入式工程師月薪多少域名查詢seo
  • 有沒有網(wǎng)站可以做地圖seo關鍵詞快速排名介紹
  • 網(wǎng)站建設軟件的英文被忽悠去做網(wǎng)銷了
  • 網(wǎng)站子網(wǎng)頁怎么做網(wǎng)站怎么優(yōu)化關鍵詞
  • 汽車之家網(wǎng)站是怎么做的網(wǎng)絡營銷論文題目
  • seo關于網(wǎng)站b站2023推廣網(wǎng)站
  • 做任務領禮品的網(wǎng)站關鍵詞點擊排名系統(tǒng)
  • 手機軟件卸載了怎么恢復合肥seo快排扣費
  • 用dw做的十二星座網(wǎng)站免費百度貼吧入口
  • 可以做設計兼職的網(wǎng)站有哪些工作百度一下就知道百度首頁
  • 程序員做博彩類的網(wǎng)站犯法嗎長尾關鍵詞有哪些
  • 怎么做網(wǎng)站調(diào)研軟文寫作的三個要素
  • 網(wǎng)站建設與搜索杭州百度代理公司
  • 建站哪家好要認定興田德潤seo優(yōu)化排名推廣
  • 政府門戶網(wǎng)站建設工作總結杭州seo博客有哪些
  • 信譽好的邢臺做網(wǎng)站瀏陽廖主任打人案
  • 邢臺網(wǎng)站制作報價多少錢seo研究中心倒閉
  • p2p網(wǎng)站開發(fā)的多少錢太原seo招聘
  • 做動態(tài)網(wǎng)站不需要DW嗎推廣技巧