Re: Why "Access Violent" throw when insert pair object into std::map
- From: phoenix8848@xxxxxxxxx
- Date: Fri, 29 Feb 2008 18:07:33 -0800 (PST)
On Mar 1, 7:47 am, "Giovanni Dicanio" <giovanni.dica...@xxxxxxxxxxx>
wrote:
<phoenix8...@xxxxxxxxx> ha scritto nel messaggionews:afbb2802-ccee-46e7-8f9e-f2bea29a83a9@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bool InsertCell(int nSign, CDataCell& objNewCell);
I would use a const reference, like this:
bool InsertCell( int nSign, const CDataCell & objNewCell )
{
std::pair<std::map<int, CDataCell>::iterator, bool> ret =
m_mapCellCollection.insert(std::map<int,
CDataCell>::value_type(nSign, objNewCell); //throw an error said
"0x000005, Access violent"
I don't like this long type declarations, IMHO they are not very readable.
I would prefer using typedef's to make things simpler and more readable,
like this:
class CADTNode
{
private:
...
// *** Map typedef ***
typedef std::map< int, CDataCell > CellMapCollection;
CellMapCollection m_mapCellCollection;
...
bool CADTNode::Insert( int nSign, const CDataCell & objNewCell )
{
// *** Pair Typedef ***
typedef std::pair< int, CDataCell > CellMapPair;
// Insert into Map
m_mapCellCollection.insert( CellMapPair( nSign, objNewCell ) );
...
}
Giovanni
thank you for replying my object. but it's seemd that problem is still
problem.
i burn my head to think where the problem exist.
.
- References:
- Re: Why "Access Violent" throw when insert pair object into std::map
- From: Giovanni Dicanio
- Re: Why "Access Violent" throw when insert pair object into std::map
- Prev by Date: Re: Why "Access Violent" throw when insert pair object into std::map
- Next by Date: Re: Why "Access Violent" throw when insert pair object into std::map
- Previous by thread: Re: Why "Access Violent" throw when insert pair object into std::map
- Next by thread: Re: Why "Access Violent" throw when insert pair object into std::map
- Index(es):
Relevant Pages
|