簡體   English   中英

C ++錯誤:分配只讀位置

[英]C++ error:Assignment of read-only location

請幫助我找到問題,為什么我無法修改列表,我完全迷失了。 如您所見,我沒有聲明任何常量。

這是代碼:

struct Carte 
{   
    Carte(initializer_list<initializer_list<int>>  iInp){}
    initializer_list<initializer_list<int>> aVect;
};


.....
void changeValue(Carte& iCarte, int iValA, int iValB)
{   
    initializer_list<initializer_list<int>> carte = iCarte.aVect;
    initializer_list<initializer_list<int> >::iterator carte_iterator;
    initializer_list<int>::iterator carteRow_iterator;

    //changing the value
    int aLocalI = 0;
    int aLocalJ = 0;

    for(carte_iterator = carte.begin();carte_iterator!=carte.end();++carte_iterator) 
    {
        if (aLocalI == iValA)
        {
            for(carteRow_iterator = (*carte_iterator).begin();carteRow_iterator!=(*carte_iterator).end();++carteRow_iterator) 
            {
                if (aLocalJ == iValB)
                {                   
                    *carteRow_iterator = 1; // ERROR HERE
                }
                aLocalJ++;
            }
        }
        aLocalI++;
    }
}

預先感謝,朱莉婭

http://en.cppreference.com/w/cpp/utility/initializer_list

類型為std::initializer_list<T>對象是輕量級代理對象,可提供對const T類型的對象數組的訪問。

initializer_list的元素始終為 const ,因此*carteRow_iteratorconst

如果您想要可修改的對象列表,請使用std::vectorstd::array

暫無
暫無

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

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