Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [c++]std e mappe

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]std e mappe

    sto utilizzando i container dell ' stl , ma non riesco a capire perchè questo codice:
    [code]
    void CShellDSWire::FindShellWireUsed(map<int, int>* pMapUsedShellDsWire , bool bUndo)
    {
    pMapUsedShellDsWire[1] = 1;
    }
    [code]

    mi dà quest errore:

    c:\MyProjects\backups\CmpFrgDbg\ShellDSWire.cpp(12 22): error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
    grazie.

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    perchè una map ha l'operatore di assegnazione ( = ) che vuole a sinistra un'altra map.. che strano vero?

    Forse tu volevi aggiungere un elemento?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    No ma credo sia corretta la sintassi nome_mappa[chiave] = valore... cioè sta assegnando all'elemento della mappa con chiave "chiave" il valore "valore"... il problema è che quella mappa è passata per riferimento, quindi la sintassi corretta sarebbe

    codice:
    (*pMapUsedShellDsWire)[1] = 1
    o megio ancora sarebbe ricorrere ai riferimenti del C++ per il passaggio degli argomenti e lasciare tutto inalterato...

    Questo sempre ammesso che quel puntatore punti a qualcosa, se no il segmentation fault sarà inevitabile.
    every day above ground is a good one

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    ma infatti.. è quello che dicevo io.. essendo un puntatore l'operatore di selezione [] riguarda il puntatore (come fosse un array quindi) e non la mappa puntata dal puntatore

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.