freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

cprime筆記-資料下載頁

2025-08-12 16:03本頁面

【導讀】只適合于有了一定的C++基礎的讀者。本文是C++Primer學習筆記系列的第一篇,討論的問題主要是幾個往往被大家忽略的問題。如果文中有錯誤或遺漏之處,敬請指出,謝謝!每個C++程序都必須含有main函數,并且它是唯一被操作系統(tǒng)顯示調用的函數。其返回值的含義由。相關操作系統(tǒng)規(guī)定,但通常返回0表示成功。流是指要從某種I/O設備上讀入或寫出的字符序列。標準庫定義了4個I/O對象:cin、cout(有緩沖)、cerr(無緩沖)、clog(有緩沖)。從鍵盤輸入文件結束符:UNIX——Ctrl+d,Windows——Ctrl+z。C++標準規(guī)定了每個算術類型的最小存儲空間,但允許編譯器使用更大的存儲空間。表示整數、字符和布爾值的算術類型合稱為整型。而對于越界的signed類型賦值的情形,標準沒有明確說明,也就是未定義行為。C++沒有規(guī)定變量名的長度。1)包含兩個連續(xù)下劃線的標識符以及以下劃線開頭緊跟一個大寫字母的標識符。如果extern聲明有初始化表達式,那么它被認為是定義,而忽略extern。

  

【正文】 刪除元素后一個元素的位置(如果無元素,返回 end()) iterator erase(iterator first, iterator last)。 // 注意:刪除元素后,刪除點之后的元素對應的迭代器不再有效。 void clear() const。 // 清空容器,相當于調用 erase( begin(), end()) void assign(size_type n, const Tamp。 x = T())。 // 賦值,用指定元素序列替換容器內所有元素 void assign(const_iterator first, const_iterator last)。 const_iterator begin() const。 // 迭代序列 iterator begin()。 const_iterator end() const。 iterator end()。 const_reverse_iterator rbegin() const。 reverse_iterator rbegin()。 const_reverse_iterator rend() const。 reverse_iterator rend()。 vector 對象的比較(非成員函數) 針對 vector 對象的比較有六個比較運算符: operator==、 operator!=、 operator、 operator=、operator、 operator=。 其中,對于 operator==和 operator!=,如果 vector 對象擁有相同的元素個數,并且對應位置的元素全部相等,則兩個 vector 對象相等;否則不等。 對于 operator、 operator=、 operator、 operator=,采用字典排序策略比較。 注:其實只需要實現 operator==和 operator!=就可以了,其它可以根據這兩個實現。因為,operator!=(lhs, rhs) 就是 !(lhs == rhs), operator=(lhs, rhs) 就是 !(rhs lhs),operator(lhs, rhs) 就是 (rhs lhs), operator=( lhs, rhs) 就是 !(lhs, rhs)。 vector 類的迭代器 vector 類的迭代器除了支持通用的前綴自增運算符外,還支持算術運算: it + n、 it n、 it2 it1。注意 it2 it1 返回值為 difference_type( signed 類型)。 注意,任何改變容器大小的操作都可能造成以前的迭代器失效。 應用示例 include iostream include cassert include vector using namespace std。 int main() { vectorstring v(5, hello)。 vectorstring v2((), ())。 assert(v == v2)。 cout Before operationendl。 for(vectorstring::const_iterator it = ()。 it ()。 ++it) cout*itendl。 (() + 3, 4, hello, world)。 cout After insertendl。 for(vectorstring::size_type i = 0。 i ()。 ++i) coutv[i]endl。 vectorstring::iterator it = (() + 3, () + 6)。 assert(*it == hello, world)。 cout After eraseendl。 for(vectorstring::size_type i = 0。 i != ()。 ++i) coutv[i]endl。 assert(() + () == ())。 assert(() () == ())。 assert(() () == vectorstring::difference_type(()))。 return 0。 } 程序說明:上面程序中用了三個循環(huán)輸出容器中的元素,每個循環(huán)的遍歷方式是不一樣的。特別需要 說明的是,第二個循環(huán)在條件判斷中使用了 size()函數,而不是在循環(huán)之前先保存在變量中再使用。之所以這樣做,有兩個原因:其一,如果將來在修改程序時,在循環(huán)中修改了容器元素個數,這個循環(huán)仍然能很好地工作,而如果先保存 size()函數值就不正確了;其二,由于這些小函數(其實現只需要一條返回語句)基本上都被聲明為 inline,所以不需要考慮效率問題。 迭代器 迭代器 (iterator)是用來遍歷容器內所有元素的數據類型。標準庫為每一種標準容器定義了一種迭代器類型。迭代器類型提供了比下標操作更通用的方法: 所有標準容器類都定義了相應的迭代器類型,而只有少數的容器支持下標操作。所以,在編寫 C++程序時,用迭代器遍歷容器是一種更通用的方法,也更加安全。一般提供兩種類型: iterator 和 const_iterator。 begin()和 end()操作 每種容器都定義了一對命名為 begin()和 end()的函數,用來返回容器的迭代序列。其中, begin 返回的迭代器指向第一個元素, end 返回的迭代器指向最后一個元素的下一個位置(實際上是一個不存在的元素),所以迭代序列為 [begin(), end())。如果容器為 空,那么 begin()返回與 end()一樣的迭代器。 訪問容器元素 (operator*) 假如迭代器 it 指向容器的一個元素,那么解引用 *it 就是該元素的值(注意,不能對 end()解引用)。 下一個元素 (operator++) 所有迭代器都支持前綴自增運算符,如 ++it,表示把迭代器移到容器中的下一個元素的位(同樣不能對end()運算)。 比較 (operator == or operator !=) 所有迭代器都支持迭代器之間的比較: operator ==:如果兩個迭代器指向同一元 素,那么返回 true;否則返回 false。 (operator != 類似) bitset 模板類 templatesize_t N class bitset。 bitset 也是類模板,其模板參數 N 必須是常量表達式(能夠在編譯時計算出其值),表示 bitset 類對象的長度(位的個數)。 bitset 對象用來作為位容器,方便對位的操作,其元素為位。 bitset 對象元素的位置編號從 0 到 N 1,對應著位串從低位到高位。 bitset 類對象的構造 它有三個構造函數: bitset()。 初始化所有位都為 0 bitset(unsigned long val)。 用 unsigned long 初始化 bitset 對象,初始化 bitset 對象為 val的位模式。 如果 bitset 對象的長度小于 val的位數,那么 val中多余的高位被丟棄; 如果 bitset 對象的長度大于 val的位數,那么 bitset 對象的高位將被置為 0 explicit bitset(const stringamp。 str, size_t pos = 0, size_t n = 1)。 用 string 對象中從 pos 下標開始的 n 個字符來初始化 bitset 對象(這些字符必須是 0 或者 1)。如果() pos,那么將拋出 out_of_range 異常。如果指定的字符序列 [pos, pos + n)中有非 0、 1字符,那么將拋出 invalid_argument 異常。如果 n () pos,就只使用 () pos 位來初始化 bitset 對象。如果指定的字符序列中字符個數比 bitset 對象位數要多,則只使用前 面的字符。 初始化規(guī)則: [pos, pos + n)序列中最后一個字符對應著 bitset 對象的低位(第一位),而第一個字符對應著高位。(這點符合我們看待字符串形式的位串的方式:左邊是高位,右邊是低位) 舉例: bitset16 bs1。 // bs1 有 16 位,并全部初始化為 0 bitset16 bs2(0xFFFF)。 // bs2 有 16 位,并全部初始化為 1 bitset32 bs3(0xFFFF)。 // bs3 有 32 位,低 16 位 (015)為 1,高 16 位 (1631)為 0 bitset8 bs4(0xFFFF)。 // bs4 有 8 位,并全部初始化為 1 string test(111110000011)。 bitset8 bs5(test)。 // bs5 有 8 位,并且只使用 test 串的前八個字符 11111000來初始化, // 所以 07 位為: 0001 1111(注意與源串反向) bitset8 bs6(test, 4, 3)。 // bs6 有 8 位,并且用 100來初始化,所以 07 位為: 0010 0000 位的測試 bool any() const。 // 如果容器內有任意位被置為 1,則返回 true;否則返回 false。 bool none() const。 // 如果容器內沒有位被置為 1,則返回 true;否則返回 false。 bool test(size_t pos, bool val = true)。 // 測試位置 pos 處的位是否為 val(默認測試是否為 1) // 如果 pos = size(),那么將拋出異常 out_of_range bool at(size_type pos) const。 // 返回指定位;如果 pos 無效,那么將拋出異常 out_of_range。 reference at(size_type pos)。 bool operator[](size_type pos) const。 reference operator(size_type pos)。 static const size_t bitset_size = N。 //容器內的位個數 N size_t size() const。 // 返回容器內的位個數 N size_t count() const。 // 返回被置為 1 的位的個數 bitsetNamp。 flip()。 // 將容器內所有位全部取反 bitsetN operator~()。 // 返回 thisflip()。 bitsetNamp。 flip(size_t pos)。 // 將位置 pos 處的位取反;如果 pos = size(),那么將拋出異常out_of_range。 bitsetNamp。 reset()。 // 將容器內所有位重置為 0 bitsetNamp。 reset(size_t pos)。 // 將位置 pos 處的位置為 0;如果 pos = size(),那么將拋出異常 out_of_range bitsetNamp。 set()。 // 將容器內所有位重置為 1 bitsetNamp。 set(size_t pos, bool val = true)。 // 將位置 pos 處的位置為 val(默認為 1); // 如果 pos = size(),那么將拋出異常 out_of_range unsigned long to_ulong() const。 // 返回對應的 unsigned long 值;如果溢出,則拋出overflow_error string to_string() const。 // 把 bitset 對象轉換成 string 對象,其規(guī)則是:字符串的第一字符對應容器中最后一位。 bool operator ==(const bitsetNamp。 rhs) const。 // 如果兩容器的位序列
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1