簡體   English   中英

std::reverse_iterator 成員函數之間的區別:_Get_current() 和 base()?

[英]Difference between std::reverse_iterator member functions: _Get_current() and base()?

兩個成員函數似乎都在做同樣的事情。
在下面的示例中,兩者都返回一個指向同一 memory 位置的迭代器。

a) 有什么實際區別嗎?

b) 為什么我在標准 class 文檔中找不到_Get_current()的任何信息? 我懷疑下划線前綴是一個線索。

std::string s = std::string( "A B C" ) ;    

std::string::iterator iter1 = s.begin();
std::string::reverse_iterator iter2 = s.rbegin();

std::string::iterator iter3 = iter2.base();
std::string::iterator iter4 = iter2._Get_current();

如果您看到以_后跟大寫字母開頭的標識符,則該標識符正被 C++ 實現的內部使用,您永遠不應使用該標識符。 您沒有看到它記錄在案,因為它僅供內部使用,特定於庫類型的實現。

只需使用實際界面即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM