2013-09-21 40 views
2

我一直在閱讀加速C++ 2000幾天,我遇到了矢量<〜>。如果我想傳遞常量值到矢量<~>,我應該寫什麼?

假設我要追加值,以我的矢量必須永遠不會改變,我應該寫

const vector<double>; 

vector<const double>; 

我在問,因爲我不確定哪一個根據我想要發生的事情工作。

+1

請注意,您不能刪除常量元素向量中的元素,因爲刪除索引i處的元素需要將其分配給索引> = i處的所有元素。 – fredoverflow

回答

3

這是無法完成的。矢量的組件類型必須是可分配的。這意味着你不能附加到無法更改的矢量值。 Why can't I make a vector of references?

所有你可以是使矢量常量:

const vector<double>; 

但是這意味着矢量不能改變。你不能添加它,也不能改變它的元素。

+0

只是一個澄清。我們被允許在尖括號內加上** const **,因爲C++語法規定內容向量<~>的數據類型應該在尖括號內聲明?由此,我的意思是它不是通常的「dataType名稱」聲明。 – Nogurenn

+1

@solitude是的。 Google「C++模板」。 – 2013-09-21 05:06:49

+0

是的,在這種情況下,數據類型是'const double' – cpp

相關問題