简体   繁体   中英

Inserting an element with pointer to std::map using Index operator

Say I have an std::map type which for example is defined as follows.

std::map<int, int>* someMap;

If I weren't using a pointer, I could simply add an element using the index operator. However in this case, since I have a pointer, would the following be the correct way to insert using the index operator.

(*someMap)[someIndex] = someValue;

Yes. The operator [] is overloaded for the Map class. It has to be used directly with the object.

Make sure you point someMap at something. Otherwise, its just contains a meaningless address derived from garbage on the stack. Here's an example allocating from the heap:

  std::map<int, int>* someMap = new std::map<int, int>();

and once thats done, yes, you are correct in how to use it:

  (*someMap)[someIndex] = someValue;

and be sure to cleanup after yourself

  delete someMap;

是的,您的代码很好:

(*someMap)[someIndex] = someValue;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM