亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么使用span<T>或者span_p<T>

發布時間:2021-11-24 11:30:40 來源:億速云 閱讀:341 作者:iii 欄目:大數據

這篇文章主要介紹“C++怎么使用span<T>或者span_p<T>”,在日常操作中,相信很多人在C++怎么使用span<T>或者span_p<T>問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++怎么使用span<T>或者span_p<T>”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

F.24:使用span<T>或者span_p<T>表示半開序列

半開是數學概念,指的是C++中的數組用[p:p+n)表示時,p指向第一個元素,而p+n則處于數組之外。

Reason(原因)

Informal/non-explicit ranges are a source of errors.

非正式的,不清楚的范圍是錯誤之源。

Example(示例)

X* find(span<X> r, const X& v);    // find v in r
vector<X> vec;// ...auto p = find({vec.begin(), vec.end()}, X{});  // find X{} in ve
Note(注意)

在C++代碼中,范圍的概念特別常見。典型情況下,范圍不會被明示而且很難確認是否被正常使用。尤其,給定一對表示參數(p, n)以表示數組[n:p+n),通常不可能知道p的后面是否真有n個元素可用。作為簡單的輔助類,span<T>用于表明范圍[p:q),而span_p<T>用于表示的范圍開始于p,終止于第一個謂詞為true的元素。

譯者注:很遺憾沒有找到span_p<T>的用法示例。

Example(示例)

span表示元素的范圍,但是我們怎么操作范圍中的元素呢?

void f(span<int> s){    // range traversal (guaranteed correct)    for (int x : s) cout << x << '\n';    // C-style traversal (potentially checked)    for (gsl::index i = 0; i < s.size(); ++i) cout << s[i] << '\n';    // random access (potentially checked)    s[7] = 9;    // extract pointers (potentially checked)    std::sort(&s[0], &s[s.size() / 2]);}
譯者注:大致可以參考vector的用法。
Note(注意)

A span<T> object does not own its elements and is so small that it can be passed by value.

span<T>對象不會真正用于它的元素,小到可以直接傳遞對象。

Passing a span object as an argument is exactly as efficient as passing a pair of pointer arguments or passing a pointer and an integer count.

傳遞span對象作為參數和傳遞一對指針參數或者一個指針一個整數在高效性方面完全相同。

Enforcement(實施建議)

(復雜)當代碼訪問以整形值確定邊界的指針類型參數時,報警并建議使用span代替。

到此,關于“C++怎么使用span<T>或者span_p<T>”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

津市市| 湘乡市| 宿州市| 梧州市| 马龙县| 雅安市| 新化县| 二连浩特市| 平山县| 项城市| 手游| 连平县| 甘谷县| 宣恩县| 抚宁县| 英德市| 黔西县| 舟曲县| 五大连池市| 察隅县| 萨迦县| 中西区| 定兴县| 疏勒县| 山阳县| 泌阳县| 泗阳县| 宣武区| 凤庆县| 莲花县| 手游| 洛川县| 荣成市| 安泽县| 兴仁县| 郎溪县| 定兴县| 邵东县| 阿勒泰市| 全椒县| 米林县|