面試題整理1
相同點:都是繼承collection介面
不同點:
1.list 元素存放有順序,元素可重複
set 元素存放無順序,元素不可重複
2.list 支援for迴圈,也可以用迭代器
set 只能用迭代器,因為它是無序的,無法通過下標獲取元素
3.list和陣列相似,查詢元素效率高,插入刪除元素效率低,插入刪除元素位置會發生改變
set查詢元素效率低,插入刪除元素效率高,插入刪除元素位置不會改變
不是執行緒安全的
比如執行緒a和執行緒b同時進行hashmap插入操作,兩個執行緒插入的資料計算的hash值相同,並且該位置當前為空,這是執行緒a先進行if判斷符合條件,當a進入if後cpu將資源排程給執行緒b使用,這時b也進入到if語句中,當a向該位置插入資料後,輪到b也向該位置新增資料,這時就會覆蓋掉a的資料,發生了執行緒不安全現象。
當向容器新增元素時,會先判斷當前容器的元素個數,如果大於等於閾值,即當前陣列的長度乘以載入因子的值得時候,就會自動擴容了。
常見面試題整理
題目 如下為型別cmystring的宣告,請為該型別新增賦值運算子函式。class cmystring 注意點 1.返回值是否為該型別的引用。如果為該型別引用則可連續賦值。如果返回void,則無法通過編譯 2.傳入引數是否宣告為常量引用。如果傳入引數不是常量引用,則會有一次非必要的拷貝構造函式呼叫 ...
C 常見面試題整理
最小堆pop最小的,最大堆pop最大的 設計乙個演算法,找出陣列中最小的k個數。以任意順序返回這k個數均可 最大堆 class solution while maxheap.empty return out 在未排序的陣列中找到第k個最大的元素。請注意,你需要找的是陣列排序後的第 k 個最大的元素,...
C C 常見面試題整理
事情皆有因果。卻有未必好因造好果,看你是短看還是長看。從概率和從極長遠來看,當然是好人好報,但是具體短期的隨機性就無法 了。在該函式前新增extern c 宣告。由於編譯後的名字不同,c 程式不能直接呼叫c 函式。a c 中的類預設的成員是私有的,struct預設的是共有的。b c 中的類可以定義成...