既然struct或者class裡可以包含多個不同元素,為何還要有std pair?他的優勢是什麼?

時間 2021-05-29 22:20:26

1樓:

個人感覺這個東西,是用來方便操作 map 的。

因為乙個 map 可以很方便的轉換成 vector>

(就不打 std::,而且我還要加上 using namespace std;(逃

2樓:Xi Yang

我感覺這類似半殘的std::tuple,用來給模板用的。

或者你需要傳倆東西,又懶得寫個struct的時候。

當然,標準庫的對映容器卻要弄個std::pair,這純屬設計問題。

3樓:

pair的實現其實很簡單,在EASTL的實現裡加上各種巨集以處理各種編譯器的特殊情況以後,也不過三四百行。涵蓋了包括operator=,swap, 移動構造,複製構造,比較操作符以及make_pair幫助函式,沒有其他花哨的內容。

如果你只需要乙個容器可以容納兩個元素,那struct可以很好的完成你的工作。但是如果你想要乙個容器支援容納兩個元素,並且為這個struct寫了一些函式來支援以上提到的操作符,那麼你就用struct重新發明了乙個pair,還是乙個特化型別版本的pair。

有京劇大佬可以把《鬢邊不是海棠紅》裡包含的京劇總結一下呢?

雨晴fresh 補充幾個 陳紉香和商細蕊給劉漢雲唱的 崑曲 玉簪記 琴挑 朝元歌 長清短清 水雲樓演員練功 遊龍戲鳳 西皮流水 月兒彎彎照天下 周雲香和商細蕊初逢黃派 春秋配 西皮原板 在家中受不過繼母拷打,莫奈何到荒郊我就來撿蘆花 這個只有兩句 商細蕊和俞青 十三妹 悅來店能仁寺西皮搖板 我愛你美...

水既然不可以壓縮,為什麼在杯子裡放入茶葉後水位會明顯下降?

分兩種情況 1.茶葉先放在杯底,然後浸沒茶葉,且茶葉沒有浮起則下降2.茶葉倒入水面,吸足水後浸沒 則上公升然而經過實驗我們可以知道,無論是這兩種情況的哪一種,都不會出現水位的明顯下降。你可能是由於心理原因 茶葉因吸水從而佔比增大 導致目測干擾從而得出錯誤結論。很簡單,茶葉吸水了,然後有一部分因為浮力...

既然佛不能改變因果,為什麼《金剛經》裡說可以消除先世業障?

雲何如是 萬法因緣生滅如夢幻泡影,像作夢你無法改變夢中之事,但覺悟可以,一但覺醒,夢即消。金剛經 是本性般若,能開悟自性,如夢覺醒,一切因緣造作而來的業,當然如夢中覺醒而消失。不可錯解佛意,更不可謗佛謗法呀!慎! 皓程 不單是佛,誰也不能改變因果迴圈的規律,但是可以在因果的表現形式上有所作為。打個比...