預設建構函式準確來說就是在呼叫時不需要傳入形參的建構函式。 c++11 在原有提供預設建構函式、賦值建構函式、複製賦值運算子和析構函式的基礎上增加移動建構函式和移動複製運算子。
預設建構函式原型:someclass::someclass(const someclass&)
移動建構函式原型:someclass::someclass(someclass&&)
預設複製運算子:someclass& someclass::operator(const&someclass&)
預設移動複製運算子:someclass& someclass::operator(someclass&&)
另外,預設移動建構函式和移動輔助運算子的工作版本相似,逐行執行成員初始化並複製內建型別,如果是類成員則呼叫相應的建構函式和賦值運算子,如果定義了移動建構函式和移動賦值運算子,否則呼叫賦值建構函式和賦值運算子。
class someclass
//default 只能用於6個特殊的成員函式,而delete可以用於任何成員函式,一種可能的用法是禁用某些轉換
class someclass
//這種情況下呼叫 redo(5)表示與redo(int)匹配,編譯器將報錯
memmove:
memmove用於拷貝位元組,如果目標區域和源區域有重疊的話,memmove能夠保證源串在被覆蓋之前將重疊區域的位元組拷貝到目標區域中,但複製後源內容會被更改。但是當目標區域與源區域沒有重疊則和memcpy函式功能相同。
原型:void *memmove( void* dest, const void* src, size_t count );
標頭檔案:功能:由src所指記憶體區域複製count個位元組到dest所指記憶體區域。
std::vector::reserve
// vector::reserve
#include #include int main ()
} std::vectorbar;
sz = bar.capacity();
bar.reserve(100); // this is the only difference with foo above
std::cout << "****** bar grow:\n";
for (int i=0; i<100; ++i)
} return 0;
}****** foo grow:
capacity changed: 1
capacity changed: 2
capacity changed: 4
capacity changed: 8
capacity changed: 16
capacity changed: 32
capacity changed: 64
capacity changed: 128
****** bar grow:
capacity changed: 100
c++ stl 之set
首先stl 預設的set和map都是有序排列的,預設是公升序排列;
set是基於紅黑樹,查詢複雜度是log(n),有迭代器版本使用迭代器版本;
lower_bonde: 返回最小的對等於查詢物件的迭代器
upper_bonde:返回最小的大於查詢物件的迭代器
map set insert().second 如果插入成功返回true,否則返回false;
greater(left,right)return left>right;
less(left,right)return left
linux命令日常積累
壓縮命令 命令格式 tar zcvf 壓縮檔案名.tar.gz 被壓縮檔案名 1 cd 檔案目錄 切換到檔案目錄 2 ls 檢視一下檔案 3 tar zcvf aa 壓縮檔案名 tar.gz bb 要備份的檔名 ear 可先切換到當前目錄下。壓縮檔案名和被壓縮檔案名都可加入路徑。解壓縮命令 命令格式...
Qt之日常積累
qt獲取qdatatimeedit的值 qdatetime datetimes qdatetimeedit time new qdatetimeedit qdatetime currentdatetime datetimes time datetime 讀取qtextedit的值 qstring c...
日常工作積累
一 如果hive中的表儲存為parquet的格式,假如我們要改字段的名字,那麼改完字段後,該字段的資料全變為null 二 kill掉正在執行的hive任務 三 字母 漢字 數字所佔位元組 乙個字母 1個位元組 乙個數字 1個位元組 乙個漢字 2個位元組 四 算法官網 五 我們在做hive的表的時候,...