民國110年 第2梯次 電腦軟體設計(C++)乙級 學科

第70題

v1 是C++的vector 樣版類別所宣告的一個物件,下列那些指令可用來隨機存取v1 中註標(index) 為3 的資料:

題目

v1 是C++的vector 樣版類別所宣告的一個物件,下列那些指令可用來隨機存取v1 中註標(index) 為3 的資料:

  1. (1) v1.at
  2. (2) (3)v1[3]
  3. (3) v1.data()[3]
  4. (4) v1.data[3]

官方答案

(1) v1.at、(2) (3)v1[3]、(3) v1.data()[3]

解析

C++ vector 樣版類別提供多種隨機存取(Random Access)方式。v1.at(3) 透過成員函式 at() 存取註標 3 的元素,並具邊界檢查;v1[3] 使用 subscript 運算子 operator[],亦可直接存取第 4 個元素(註標從 0 起算);v1.data() 回傳指向底層連續陣列的指標,故 v1.data()[3] 同樣能隨機存取。相對地,v1.data[3] 是錯誤寫法,因 data 是成員函式而非陣列,必須以 data() 呼叫取得指標後再索引。故正確指令為選項 1、2、3。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料