簡體   English   中英

QT&C ++:傳遞'const QString'會丟棄限定詞

[英]QT & C++ : Passing 'const QString' discards qualifiers

我編寫了一個在STL中運行良好的循環,但是我一直在嘗試使用適當的QTL數據類型進行操作,這給了我錯誤:

error: passing 'const QString' as 'this' argument of 'QString& QString::operator=(char)' discards qualifiers [-fpermissive]
      dic.at(i) = char(i);

我試圖運行的完整代碼是這樣的:

    QVector <QString> dic ( 256 );
for(int i = 0; i < 256; i++)
{
     dic.at(i) = char(i);
}

不太確定我需要在代碼中更新什么,有什么想法嗎?

QVector::atconst 您要使用dic[i]

詳細信息:由於Qt的容器是寫時復制的,因此非const訪問器從本質上講更加昂貴,因為它們必須首先檢查是否需要復制基礎數據(並在必要時進行復制)。 因此,在Qt中, at(i)會比operator[]快。 可悲的是,這與STL相反,例如, std::vector<T>::at(i)會進行邊界檢查,因此,它比std::vector<T>::operator[](i)稍微貴一些std::vector<T>::operator[](i)

暫無
暫無

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

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