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

時間 2021-12-23 22:59:07

1樓:匿名使用者

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

寫個簡單的例子:

#include

#include

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

else

}void main()

2樓:

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

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

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

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

3樓:韌勁

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

寫個簡單的例子:

#include

#include

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

else

}void main()

c++這個返回迭代器的函式錯在**啊

4樓:destroy流亡

template//定義函式模板

返回值為vector容器(內建t物件)的迭代器

//這是名稱問題,

C如何將型別作為引數傳遞,C 怎麼將類作為引數傳遞

鄭振英衣念 直接作為object傳過去,然後再根據需要檢測型別 public void show object o else if o istextbox 你那種思路傳的引數只能是string 然後用反射機制實行 要不然以你的 傳的是一個型別 他的型別物件是空的 assibly as assibly...

如何將360瀏覽器設定為預設瀏覽器

開啟360安全瀏覽器右上角選單按鈕,選擇設定設定為 預設瀏覽器 出來介面點選確定就可以了。如何把360瀏覽器設定成預設瀏覽器?設定方法 1 開啟360安全瀏覽器,在瀏覽器右上角找到 開啟選單 的圖示,點選該圖示開啟選單視窗,在視窗中點選 設定 2 進入360安全瀏覽器的選項頁面了,在頁面左側的選單欄...

C 中如何儲存輸入的資料,C 如何將輸入的內容輸出到文字檔案

使用檔案操作把輸入的資料儲存到文字當中即可。1 c語言標準庫提供了一系列檔案操作函式。檔案操作函式一般以f 單詞的形式來命名 f是file的簡寫 其宣告位於stdio.h標頭檔案當中。例如 fopen fclose函式用於檔案開啟與關閉 fscanf fgets函式用於檔案讀取 fprintf fp...