2014-10-28 79 views
-2

這個問題是關於vector之後的書「C++ STL」的第一個問題。我無法回答它,而我在上網時無法找到答案。爲什麼不能int型是STL向量中的迭代器?

+2

它是一個真正的STL向量,還是來自C++標準庫的'std :: vector'?無論如何,迭代器必須可解引用。你不能取消引用'int'。 – 2014-10-28 07:30:41

+0

對不起,我找不到一本名爲「C++ STL」的書。是N.M. Josuttis的「C++標準庫」嗎?我在[Safari](https://www.safaribooksonline.com/)中查找了這一個,但是我找不到你所說的問題。 – TobiMcNamobi 2014-10-28 07:52:13

+0

P.J.普勞格寫了它。 「C++標準模板庫」。可能在不同的國家/地區名稱不同。@ TobiMcNamobi – wangsquirrel 2014-10-28 08:08:08

回答

1

問題的一個顯而易見的答案是,迭代器需要像指針一樣工作,因此對於某個任意迭代器,*iterator是有效代碼(*充當一元運算符)。

對於int,這將不會是這樣 - 給予一定iint類型的,你不能使用*i(除了在*將被解釋爲二進制運算符背景下,諸如j *i做乘法)。