程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++Simplify05

C++Simplify05

編輯:C++入門知識

1. 標准庫bitset
#include<bitset>
using std::bitset;  //或者using namespace std;
1-1: bitset類是一種類模板;而與vector不一樣的是bitset類型對象的區別僅僅在其長度而不在其類型。定義時,知名長度值:bitset<32> bitvec;
位集合的位置從0開始,bitvec的為序是從0到31.以0位開始的位串是低階為,以31位結束的位串是高階位。
1-2:幾種初始化方法:
         bitset<n>b;    //b有n位,每位都為0
         bitset<n>b(u);   //b是unsigned long型u的一個副本
         bitset<n>b(s);    //b是string對象s中含有的位串的副本
         bitset<32>bitvec(“1100”);  //第2、3位為1,其余為0
注意:string對象和bitset對象之間是反向轉化的:string對象的最右邊字符(即下標最大的那個字符)用來初始化bitset對象的低階位(即下標為0的位)。
bitset<n> b(s,pos,n);  //b是s中從位置pos開始的n個位的副本,當省略第三個參數n時,則一直取到字符串末尾
         bitset<16>bitvec(0xffff);  //十六進制表示16個1
         bitset<32>bitvec(0xffff);  //十六進制表示低位16個1,高位16個0
1-3:  bitset常用操作
         b.any();              //b中是否存在置為1的二進制位
         b.none();           //b中不存在置為1的二進制位嗎?
         b.count();                   //b中置為1的二進制的個數
         b.size();             //b中二進制位的個數  返回值類型是size_t
         b[pos];               //訪問b中在pos處的二進制位
         b.test(pos);      //b中在pos處的二進制位是否為1?
         b.set();              //把b中所有二進制位都置為1
         b.set(pos);        //把b中在pos處的二進制位置為1
         b.reset();          //把b中所有二進制都置為0
         b.reset(pos);    //把b中在pos處的二進制位置為0
         b.flip();               //把b中所有二進制位逐位取反
         b.flip(pos);        //把b中在pos處的二進制位取反
         b.to_ulong();    //用b中同樣的二進制位返回一個unsigned long值
         os<< b               //把b中的位集輸出到os流
2. 數組
         與vector類型相似,數組也可以保存某種類型的一組對象;但數組長度是固定的。已經創建,就不允許添加新的元素。
         比較:現代的C++程序更多的使用vector取代數組,數組被嚴格限制於程序內部使用,只有當性能測試表明使用vector無法達到必要的速度要求時,才使用數組。
         數組定義中的類型名可以是內置數組類型或類類型,除引用之外,數組元素的類型還合一是任意的復合類型。沒有所有元素都是引用的數組。
         2-1: 數組初始化:維數必須在一對方括號[ ]內指定
                   顯示初始化數組元素:
                            const unsigned size= 3;
                            int ia[size] = {0,1,2};  //數組含有3個元素分別是0,1,2
                            int ia[] = {0,1,2};       //根據列出元素個數確定數組長度為3
如果元素為類類型,自動調用默認構造函數進行初始化;如果該類沒有默認構造函數,則必須為該數組的元素提供顯示初始化
                   特殊的字符數組:
                            char ca1[] = {‘C’, ’+’,’+’};                 //長度為3的字符數組
                            char ca2[] = {‘C’, ’+’,’+’, ‘\0’};                  //長度為4的字符數組,末尾為空字符
                            char ca3[] = “C++”;                             長度為4的字符數組,末尾為空字符
                   不允許數組直接復制和賦值:
                            不能用一個數組賦值方式初始化一個新數組
                            int ia[] = {0,1,2};
                            int ia2[](ia);                //錯誤!!!
         2-2: 數組操作
                   使用下標操作符訪問,下標從0開始,到n-1(數組有n個元素).
 作者:TskyFree

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved