c 迭代器怎樣進行類的宣告,C 中如何將迭代器作為函式的預設引數使用

時間 2022-02-12 18:40:10

1樓:匿名使用者

使用vector定義好的型別iterator就行了,當然還有一些其他的型別,自己翻書查資料看看,使用方法是你定義的vector的型別加上作用域操作符(兩個英文冒號::)再加上型別名就行了,例如

vectora(10, 5); // 定義了10個5的int型vectror

// 使用迭代器迭代輸出vector的內容for (vector::iterator it = a.begin(); it !

= a.end(); ++it) // 定義了vector型別的迭代器it

cout << *it << endl;

其他型別的容器也是這樣。這種東西教c++的書上應該都有,沒事多翻翻書

2樓:勇敢的心

向量的迭代器也是有型別的,所以在宣告迭代器的時候必須指定向量中元素的型別。比如:

宣告了乙個vectorvec的向量,如果要宣告迭代器的話必須這樣:vector::iterator ite;

前半部分vector::iterator這個就是乙個型別,代表元素為int型變數的向量的迭代器。其他型別同理(自定義類也一樣)。

3樓:匿名使用者

vectorvector1(n,value);

vector::iterator iterator1=vector1.begin();

向量迭代器就是這樣定義的

c++乙個類模板裡使用迭代器的問題

4樓:匿名使用者

編譯器說的再清楚不過了

typedef list::iterator litr;

'std::list::iterator'前面要加'typename'指示這是乙個型別的名字,因為

'std::list'是dependent scope,不能自動判斷其成員iterator是型別還是變數

5樓:匿名使用者

need 'typename' before 'std::list::iterator

c++中如何將迭代器作為函式的預設引數使用

6樓:匿名使用者

額。這個。你傳入迭代器指標就ok了。初始化為null如 void fun( std::vector::iterator* piter = null );

寫個簡單的例子:

#include

#include

void f( std::vector::iterator* piter = null )

else

}void main()

7樓:

可以啊,迭代器實際上是乙個巢狀的型別,由於它沒有帶乙個指標引數並且允許隱式轉換的建構函式,當然不能賦以指標值.但可以呼叫它的預設建構函式作為引數的預設值,如:

void f(std::vector::iterator iter = std::vector::iterator())

但話說回來,這樣又有什麼用呢?使用預設建構函式定義的迭代器,結果是未定義的.而且迭代器的比較操作符內部會斷言兩個迭代器是否是屬於同乙個容器,也就是說你不能像ptr == null判斷指標是否有效來判斷迭代器(ivec.

begin() == iter).所以迭代器不應該使用預設值,在這一點上迭代器是不如指標靈活.

8樓:韌勁

如 void fun( std::vector::iterator* piter = null );

寫個簡單的例子:

#include

#include

void f( std::vector::iterator* piter = null )

else

}void main()

c++迭代器的用法

9樓:it孤鶩

你的cpoints是這個樣子的嗎?

class point

;class cpoints

;it_point->second.z

意思就是指向second點的成員z的值

10樓:ai看雪

c++ 迭代器有點類似於指標, cpoints應該是乙個存放結構體的容器,所以有second.z

11樓:匿名使用者

it_point->second.z 中

it_point 是迭代器, 可以理解成訪問指標second 是 結點裡面的 資料, 看字面意思, 應該是乙個class 或者 struct

z 就是 second 裡面的乙個資料

C 中類怎樣定義,使用,C 中如果要用的類定義在使用之後,該怎樣宣告?

類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為 方法 實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者 幹什麼 而實現部分是告訴使用者 怎麼幹 類的一般定義格式如下 class 類...

C 中類之間的依賴關係,C 中類的定義可以巢狀嗎

關係1 沒有關係 兩個物件之間如果沒有關係,那麼它們是孤立的。關係2 關聯關係 association a和b之間是關聯關係 c與自己關聯 關係3 有方向的關聯關係 directedassociation 關聯還可以有方向性的。如下圖 這種關係是關聯關係的一種。關係4 聚合關係 aggregate ...

C 中的“類”是什麼意思,c 中的類和類的物件是什麼意思

光棍誓言 類就是就是有類似屬性的集合。舉個例子。就像是學生類是吧。這個類就可以定義許多有一定屬性的學生。就像身高,體重什麼的。因為這都是學生的屬性。不過0基礎的話,還是先學c,學會結構體。接著學c 過渡到類。真的,零基礎直接殺c 是吃力的。 令狐蛋蛋 相當於一個集合,型別。這個集體有共同的特徵,比如...