久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

C ++(stl)與Java中的迭代器,有概念上的區(qū)別嗎?

Iterators in C++ (stl) vs Java, is there a conceptual difference?(C ++(stl)與Java中的迭代器,有概念上的區(qū)別嗎?)
本文介紹了C ++(stl)與Java中的迭代器,有概念上的區(qū)別嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

在離開一段時間后,我將返回 C++,并試圖清除舊瓜的灰塵.

在 Java 中,Iterator 是具有以下方法的容器的接口:hasNext()next()remove().hasNext() 的存在意味著它對被遍歷的容器有限制的概念.

//帶有迭代器迭代器<字符串>iter = 樹.iterator();而 (iter.hasNext()){System.out.println(iter.next());}

在 C++ 標(biāo)準(zhǔn)模板庫中,迭代器似乎表示支持 operator++operator== 的數(shù)據(jù)類型或類,但沒有限制的概念 內(nèi)置,因此在進入下一個項目之前需要進行比較.在正常情況下,用戶必須通過比較兩個迭代器來檢查限制,第二個迭代器是容器端.

向量向量;向量<int>::iterator iter;//向向量中添加一些元素v.push_back(1);v.push_back(4);v.push_back(8);for (iter= v.begin(); iter != v.end(); iter++){cout <<*i <<" ";//應(yīng)該輸出1 4 8}

這里有趣的部分是,在 C++ 中,指針是指向數(shù)組的迭代器.STL 采用現(xiàn)有的東西并圍繞它建立約定.

我還缺少什么更微妙的地方嗎?

解決方案

是的,存在很大的概念差異.C++ 使用不同的迭代器類".有些用于隨機訪問(與 Java 不同),有些用于前向訪問(如 java).甚至還有一些用于寫入數(shù)據(jù)(例如,與 transform 一起使用).

請參閱 C++ 文檔中的迭代器概念:

  • 輸入迭代器
  • 輸出迭代器
  • 前向迭代器
  • 雙向迭代器
  • 隨機訪問迭代器

與 Java/C# 的微不足道的迭代器相比,這些迭代器更加有趣和強大.希望這些約定將使用 C++0x 的 Concepts 進行編碼.p>

I'm returning to c++ after being away for a bit and trying to dust off the old melon.

In Java Iterator is an interface to a container having methods: hasNext(), next() and remove(). The presence of hasNext() means it has the concept of a limit for the container being traversed.

//with an Iterator
Iterator<String> iter = trees.iterator();
while (iter.hasNext()) 
{
    System.out.println(iter.next());
}

In the C++ standard template library, iterators seem to represent a datatype or class the supports the operator++ and operator== but has no concept of a limit built in so comparison is required before advancing to the next item. The limit has to checked by the user comparing two iterators in the normal case the second iterator is the container end.

vector<int> vec;
vector<int>::iterator iter;

// Add some elements to vector
v.push_back(1);
v.push_back(4);
v.push_back(8);

for (iter= v.begin(); iter != v.end(); iter++)
{
    cout << *i << " "; //Should output 1 4 8
}

The interesting part here is that in C++ a pointer is an iterator to an array. The STL took what was existing and build convention around it.

It there any further subtlety to this that I am missing?

解決方案

Yes, there is a large conceptual difference. C++ utilizes different "classes" of iterators. Some are used for random access (unlike Java), some are used for forward access (like java). While even others are used for writing data (for use with, say, transform).

See the iterators concept in the C++ Documentation:

  • Input Iterator
  • Output Iterator
  • Forward Iterator
  • Bidirectional Iterator
  • Random Access Iterator

These are far more interesting and powerful compared to Java/C#'s puny iterators. Hopefully these conventions will be codified using C++0x's Concepts.

這篇關(guān)于C ++(stl)與Java中的迭代器,有概念上的區(qū)別嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Java Remove Duplicates from an Array?(Java從數(shù)組中刪除重復(fù)項?)
How to fix Invocation failed Unexpected Response from Server: Unauthorized in Android studio(如何修復(fù)調(diào)用失敗來自服務(wù)器的意外響應(yīng):在 Android 工作室中未經(jīng)授權(quán))
AES encryption, got extra trash characters in decrypted file(AES 加密,解密文件中有多余的垃圾字符)
AES Error: Given final block not properly padded(AES 錯誤:給定的最終塊未正確填充)
Detecting incorrect key using AES/GCM in JAVA(在 JAVA 中使用 AES/GCM 檢測不正確的密鑰)
AES-256-CBC in Java(Java 中的 AES-256-CBC)
主站蜘蛛池模板: 欧美一级黄色免费看 | 黄色大片免费网站 | 亚洲国产欧美国产综合一区 | 亚洲国产成人av好男人在线观看 | 国产乱码久久久久久一区二区 | 国产精品精品视频一区二区三区 | 91免费在线| 国产精品我不卡 | 色综久久 | 国产免费一区二区 | 一区二区三区四区在线播放 | 人人爽人人爽人人片av | av一区二区三区四区 | 91精品一区二区三区久久久久 | 在线播放一区二区三区 | 国产成人精品综合 | 黄色av网站在线免费观看 | 免费一级片 | 99精品免费视频 | 久久99蜜桃综合影院免费观看 | 午夜精品久久久久久久久久久久久 | 国产视频久久 | 日韩精品一区二区三区 | 欧美日韩a | 久久在看 | 日本精品一区二区三区视频 | 精品一区二区在线观看 | 中文字幕成人在线 | 国产精品久久久久久久久久久久久 | 免费人成激情视频在线观看冫 | 美女天天操 | 婷婷毛片 | h片免费在线观看 | 欧美中文一区 | 成人福利片 | 亚洲欧美视频一区二区 | 一区二区久久 | 影音先锋成人资源 | 精品中文字幕视频 | 国产精品美女久久久久aⅴ国产馆 | 中文字幕亚洲精品 |