91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

SHOW| 桦川县| 班玛县| 彭水| 红河县| 蒙自县| 逊克县| 德格县| 绩溪县| 英吉沙县| 浦江县| 东方市| 顺昌县| 潮州市| 曲阳县| 西乌珠穆沁旗| 西林县| 游戏| 太仆寺旗| 武城县| 蒲江县| 台南市| 怀宁县| 赣州市| 邓州市| 昌乐县| 耒阳市| 韶山市| 德清县| 普陀区| 密云县| 丁青县| 苍溪县| 辽源市| 两当县| 太康县| 屯留县| 隆昌县| 双江| 肇州县| 大邑县|