簡體   English   中英

右值參考

[英]Rvalue reference

在嘗試從此處理解Rvalue引用時,我無法理解兩件事

  1. 如果向量中有N個字符串,則每個副本可能需要多達N + 1個內存分配和[...]

“ N + 1”中的+1是什么?

2.作者如何突然達到以下准則

准則:請勿復制函數參數。 而是按值傳遞它們,然后讓編譯器進行復制。

我想念什么嗎?

“ N + 1”中的+1是什么?

一種分配為新矢量創建基礎數組,然后進行N種分配,為矢量中的N個字符串中的每個字符串分配一個。

作者如何突然得出以下准則

他在爭辯說, 與其在函數內部顯式復制副本,不如在函數內部復制副本,

std::vector<std::string> 
sorted2(std::vector<std::string> const& names) // names passed by reference
{
    std::vector<std::string> r(names);         // and explicitly copied
    std::sort(r);
    return r;
}

將參數傳遞給函數時,應讓編譯器進行復制,

std::vector<std::string> 
sorted2(std::vector<std::string> names)        // names passed by value
{                                              // and implicitly copied
    std::sort(names);
    return names;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM