Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. std::map and the heap

std::map and the heap

Scheduled Pinned Locked Moved C / C++ / MFC
databasehelpquestion
4 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    Dy
    wrote on last edited by
    #1

    Hi, I have the following code:

    typedef std::map MyMapType;
    MyMapType myMap;
    myMap\["abc"\] = "def";
    

    This works as expected. But I want my map to be on the heap, so I tried this:

    MyMapType \*myNewMap = new MyMapType;
    myNewMap\["abc"\] = "def"; //  error C2107: illegal index, indirection not allowed
    \*myNewMap\["abc"\] = "def"; //  error C2107: illegal index, indirection not allowed
    

    The two lines are commented with the compile time errors it generates. What have I missed?

    - Dy

    C 1 Reply Last reply
    0
    • D Dy

      Hi, I have the following code:

      typedef std::map MyMapType;
      MyMapType myMap;
      myMap\["abc"\] = "def";
      

      This works as expected. But I want my map to be on the heap, so I tried this:

      MyMapType \*myNewMap = new MyMapType;
      myNewMap\["abc"\] = "def"; //  error C2107: illegal index, indirection not allowed
      \*myNewMap\["abc"\] = "def"; //  error C2107: illegal index, indirection not allowed
      

      The two lines are commented with the compile time errors it generates. What have I missed?

      - Dy

      C Offline
      C Offline
      CPallini
      wrote on last edited by
      #2

      A pair of braces:

      (*myNewMap)["abc"] = "def";

      compiles well. BTW, you also missed to properly format your code (have a look at typedef statement in the OP). :)

      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.

      D 1 Reply Last reply
      0
      • C CPallini

        A pair of braces:

        (*myNewMap)["abc"] = "def";

        compiles well. BTW, you also missed to properly format your code (have a look at typedef statement in the OP). :)

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.

        D Offline
        D Offline
        Dy
        wrote on last edited by
        #3

        CPallini wrote:

        A pair of braces

        D'oh! Thanks very much for helping me out.

        - Dy

        C 1 Reply Last reply
        0
        • D Dy

          CPallini wrote:

          A pair of braces

          D'oh! Thanks very much for helping me out.

          - Dy

          C Offline
          C Offline
          CPallini
          wrote on last edited by
          #4

          :)

          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups