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

c++11中基于范圍的for

range-based for in c++11(c++11中基于范圍的for)
本文介紹了c++11中基于范圍的for的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在 C++ 11 中,如果我們有一個 set;S;我們可以說:

in c++ 11 if we have a set<int> S; we could say:

for (auto i: S)
    cout << i << endl;

但是我們可以強制 i 成為迭代器嗎,我的意思是寫一段代碼,相當于:

but can we force i to be a iterator, I mean write a code that is equivalent to:

for (auto i = S.begin(); i != S.end(); i++)
    cout << (i != s.begin()) ? " " : "" << *i;

或者我們可以做一些我們可以理解i在集合(或向量)中的索引的事情嗎?

or could we do something that we can understand the index of i in the set(or vector)?

另一個問題是我們怎么能說不對 S 中的所有元素都這樣做,而是對它們的前半部分或除第一個之外的所有元素都這樣做.

and another question is how could we say that don't do this for all elements in S but for first half of them or all of them except the first one.

或者當我們有一個 vector;V,想打印它的第一個n值怎么辦?我知道我們可以創建一個新的向量,但是將一個向量復制到一個新的向量需要時間.

or when we have a vector<int> V, and want to print its first n values what should we do? I know we can create a new vector but it takes time to copy a vector to a new vector.

推薦答案

沒有,很不幸.看看標準怎么說:

No, unluckily. See what the standard says:

基于范圍的for語句for ( for-range-declaration : expression ) 語句相當于

The range-based for statement for ( for-range-declaration : expression ) statement is equivalent to

{
    auto && __range = ( expression );
    for ( auto __begin = begin-expr, __end = end-expr; __begin != __end; ++__begin ) {
        for-range-declaration = *__begin;
        statement
    }
}

其中 __range、__begin 和 __end 是僅為說明而定義的變量

where __range, __begin, and __end are variables defined for exposition only

換句話說,它已經從 begin 迭代到 end 并且已經解引用了迭代器,這是你永遠看不到的.

In other words, it already iterates from begin to end and already dereferences the iterator, which you never get to see.

這篇關于c++11中基于范圍的for的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

相關文檔推薦

What do compilers do with compile-time branching?(編譯器如何處理編譯時分支?)
Can I use if (pointer) instead of if (pointer != NULL)?(我可以使用 if (pointer) 而不是 if (pointer != NULL) 嗎?)
Checking for NULL pointer in C/C++(在 C/C++ 中檢查空指針)
Math-like chaining of the comparison operator - as in, quot;if ( (5lt;jlt;=1) )quot;(比較運算符的數學式鏈接-如“if((5<j<=1)))
Difference between quot;if constexpr()quot; Vs quot;if()quot;(“if constexpr()之間的區別與“if())
C++, variable declaration in #39;if#39; expression(C++,if 表達式中的變量聲明)
主站蜘蛛池模板: 国产午夜精品一区二区三区嫩草 | 国产一伦一伦一伦 | 欧美日韩一区二区在线 | 91天堂网 | 日韩在线观看视频一区 | 一区在线观看 | 成人免费视频网 | 亚洲在线看 | 国产区久久 | 久久99久久久久 | 欧美日产国产成人免费图片 | 欧美日韩精品一区二区天天拍 | 久久精品一 | 午夜免费av| 亚洲精品一区二区冲田杏梨 | 久久久久久综合 | 久久精品视频一区二区 | 二区成人| 欧美一区二区久久 | 国产伦一区二区三区久久 | 亚洲午夜精品视频 | 婷婷综合| 麻豆视频国产在线观看 | 丁香婷婷成人 | www.日本在线观看 | 色妹子综合网 | 久久久久久久久毛片 | 久久www免费人成看片高清 | 97av视频在线观看 | 国产精品毛片一区二区三区 | 少妇一级淫片aaaaaaaaa | a免费观看 | 一级毛片免费看 | 国产精品中文字幕一区二区三区 | 91久久久久久久久久久久久 | 一区二区三区中文字幕 | 精品亚洲一区二区 | 亚洲视频免费在线播放 | 毛片一级黄色 | 草草视频在线播放 | 成人欧美一区二区三区 |