const與vector的搭配

2022-03-11 03:17:26 字數 845 閱讀 1598

有三種組合方式,分別為:

vectorvec;

const vectorvec;

const vectorvec;

以第一種方式宣告時:效果和 vectotvec 一樣。

以第二種方式宣告時:vec的元素既不能修改,也不能增加,只能訪問。

int main()

; int v = vec[0]; //可以訪問

//不能改變元素數量

//vec[0] = 4; //不能修改元素值

}

這裡有乙個地方要注意,當以const宣告乙個vector時,若想定義乙個指標指向該vector中的元素,則指標也必須宣告為const

int main()

; //int* p = &vec[0];  //會報錯

const int* p = &vec[0];       //正確做法

}

以第三種方式宣告時:效果和第二種方式一樣。

以上的**來自我從《essentialc++》中看到的乙個函式:

//函式的作用是返回vector或者資料的第乙個元素,若是vector為空,則返回nullptr

templateelemtype* begin(const vector& vec)

該函式宣告雖然在編譯時並沒有報錯,可是卻並不穩妥,因為&vec[0]是乙個const的指標,可是返回型別並沒有帶上const關鍵字,正確做法應該在返回值前加上const。

ps:來自官方文件的資料好像是錯的:資料來自:

const常量和指標搭配

const常量和指標搭配 1.const int p 限制根據指標修改對應的記憶體 2.int const p 限制根據指標修改對應的記憶體 3.int const p 情況1.include include intmain 以上 含有const int p 限制根據指標修改對應的記憶體 情況2.i...

指標和const限定符搭配

指標和const搭配不同,對所操作的物件能進行的操作也不同,從組合上看,無非有三種組合 其中type可為int char等基本資料型別,也可為構造資料型別 1 const type ptr 我們稱此種組合叫指向const物件的指標 linux核心中有很多函式引數就是此種型別,比如 void memc...

Const與Const的用法

const 是c 中常用的型別修飾符,常型別是指使用型別修飾符const說明的型別,常 型別的變數或物件的值是不能被更新的。const的作用 1 可以定義常量 即const int a 5 a就是乙個被const修飾的常量,它在程式執行期間是無法被改變的!2 保護被修飾的東西 例如乙個函式的首部為v...