C 的一些零散知識

2021-07-11 02:44:07 字數 2931 閱讀 8408

1、srand(time(0))用法的含義;

這是用於初始化隨機函式發生器的,計算機中的隨機函式在生成乙個隨機數時需要用到乙個稱為隨機數發生器的東西,如果不對其進行初始化,每次生成的隨機數就會是相同的。 srand函式就用來初始化這個發生器,引數time(0)能夠生成從2023年1月1日到當前機器時間的秒數,這個數在你每次執行程式的時候都會不斷增長、變化,所以用它當做種子來初始化發生器,就會生成不同的隨機數了。

2、setw(int n);

在c++中,setw(int n)用來控制輸出間隔。

例如:

cout

<

<8)<

則在螢幕顯示

s a

setw()只對其後面緊跟的輸出產生作用,如上例中,表示』a』共佔8個位置,不足的用空格填充。若輸入的內容超過setw()設定的長度,則按實際長度輸出。

setw()預設填充的內容為空格,可以setfill()配合使用設定其他字元填充。

如:cout

3、c++中陣列和vector的幾個注意方面;

陣列是由相同型別的相關資料項組成的資料結構;結構體和類都可以擁有不同型別的相關資料項。

(1)初始化和宣告陣列時,陣列的大小必須指明,不能改變。

(2)c++標準庫類模板vector表示乙個更健壯的陣列時,會看到vector物件的大小是內建的,每個vector物件「知道」它自己的大小,這可以通過vector物件的size成員函式得到。所以在傳遞vector物件給函式時,不需要把vector的大小作為實參傳遞。

(3)c++按引用傳遞的方式將陣列傳遞到函式中,被呼叫函式可以修改在呼叫者的原始資料中的元素值。

(4)雖然整個陣列是按引用傳遞的,但是單個的陣列元素和簡單的變數一樣,都是按值傳遞的。以下程式3.1顯示編譯器驗證了上述的觀點。

// 3.1

#include

#include

using

namespace

std;

void modifyarray(int,int);

void modifyelement(int);

int main()

; cout

<< "輸出引用之前的整個陣列:"

<< "\n\n原始陣列的值:\n";

for (int i = 0; i < arraysize; i++)

cout

<< setw(3) << a[i];

cout

<< endl;

modifyarray(a, arraysize);

cout

<< "修改後的陣列:\n";

for (int j = 0; j < arraysize; j++)

cout

<< setw(3) << a[j];

cout

<< "輸出引用之前的陣列元素值:"

<< "\n\na[3]引用之前的值:\n"

<< a[3] << endl;

modifyelement(a[3]);

cout

<< "a[3]引用之後的值: "

其實有時候不應該允許函式修改陣列元素(尤其是作為引用引數時),c++提供const限定符來防止被呼叫函式的**中修改陣列值。

4、vector的介紹。

vector是一種更健壯的、有很多附加能力的陣列。例如c++不檢查下標是否超出陣列的有效範圍;標準庫模板vector在標頭檔案中定義,屬於名空間std。

vector的一些特性:首選他可以多型的改變長度。當乙個vector的記憶體空間耗盡時,它會分配乙個更大的連續空間,把原先的資料複製到新的空間,並把原空間釋放。與原生陣列相比,vector可以相互賦值,這對基於指標的、類c的陣列來說是不可能的,因為那些陣列的名稱只是乙個指標常數,不能作為左值被賦值。

front返回vector的第乙個元素的引用,back返回vector的最後乙個容器的引用,push_back在vector的末端插入乙個新元素,pop_back刪除容器中的最後乙個元素。

integers1.size()能獲得integers1的大小(元素個數);

vectorinteger1(7);表示含有7個整型元素的vector;

void outputvector(const

vector

< int > &array)

if (i % 4 != 0)

void inputvector(vector

< int > &array)

void outputvector(const

vector

< int > &); // 顯示vector裡面的元素;

void inputvector(vector

< int > &); // 向vector裡輸入數值;

vector

< int > integers3(integers1);;//呼叫複製建構函式將 integers1賦值給integers3

integers.capacity();// capacity返回了vector在為容納更多元素調整空間前可以儲存的元素個數;
integers.push_back( 2 );  

integers.push_back( 3 );

依次向vector中插入元素;

記錄一些零散的知識。

因為本人沒有系統的學習過android,所以學的東西零零碎碎的,就在此記錄吧。1.每 0.3秒 執行一次任務 new timer schedule new timertask 0,300 2.在gridlayout 子控制項可以設定 layout columnspan 來橫跨幾列 layout ro...

一些零散筆記

1 tftp的搜尋目錄 在 tftpboot中。2 usb和emmc 這裡即sd卡啟動 3 板子 4 串列埠2,是最靠近選擇啟動介質的那個串列埠。刷linux2的時候,用串列埠0,5 裝usb轉串列埠的驅動。6 使用scrt來檢視控制台資訊。7 使用fastboot快速燒寫uboot,kernel,...

零散的一些知識點

if test type null and type.size 0 and p.purchase method name in item collection type separator open close index foreach 三 feign呼叫檔案服務傳遞multipartfile檔案...