2014-03-05 269 views
1

我通過地圖試圖循環,並在其中值分配給要素指定值,以地圖的成員通過迭代

manager.cpp:91:24: error: assignment of member ‘Node::online’ in read-only object iter->second.online = true;

這是我的節點結構:

#pragma once 

#include <map> 
#include "nodecon.h" 
typedef map<int,int, less<int> >::const_iterator NodeNeighborsIter; 

struct Node 
{ 
    int id; 
    std::map<int,int> neighbors; 
    bool online; 

    struct NodeConnection connection; 
}; 

缺少什麼我在這裏?

+1

對於其中之一,在嘗試對其進行解引用之前,「iter」未分配給*任何*。 – WhozCraig

+1

'const_iterator'表示它指向的對象是'const' - 不能改變。 –

回答

2

A const_iterator不能用於修改容器的內容。通過取消引用const_iterator獲得的所有值都是const