Is there any difference between the following commands from std::unordered_map
For inserting a key-value pair into an unordered map, e.g., std::unordered_pair<int,int> map1
, can we do it in any of these two ways:
map1[2]=5;
map1.insert({2,5});
Is there any difference between using std_unordered_insert
or operator
?
And if I want to find the mapped value for a given key, can I use either of the following:
mappedVal = map1.at(2);
mappedVal = map1[2];
Again, any difference between using std::unordered_map::at
or operator
?
c++ stl insert unordered-map
add a comment |
For inserting a key-value pair into an unordered map, e.g., std::unordered_pair<int,int> map1
, can we do it in any of these two ways:
map1[2]=5;
map1.insert({2,5});
Is there any difference between using std_unordered_insert
or operator
?
And if I want to find the mapped value for a given key, can I use either of the following:
mappedVal = map1.at(2);
mappedVal = map1[2];
Again, any difference between using std::unordered_map::at
or operator
?
c++ stl insert unordered-map
add a comment |
For inserting a key-value pair into an unordered map, e.g., std::unordered_pair<int,int> map1
, can we do it in any of these two ways:
map1[2]=5;
map1.insert({2,5});
Is there any difference between using std_unordered_insert
or operator
?
And if I want to find the mapped value for a given key, can I use either of the following:
mappedVal = map1.at(2);
mappedVal = map1[2];
Again, any difference between using std::unordered_map::at
or operator
?
c++ stl insert unordered-map
For inserting a key-value pair into an unordered map, e.g., std::unordered_pair<int,int> map1
, can we do it in any of these two ways:
map1[2]=5;
map1.insert({2,5});
Is there any difference between using std_unordered_insert
or operator
?
And if I want to find the mapped value for a given key, can I use either of the following:
mappedVal = map1.at(2);
mappedVal = map1[2];
Again, any difference between using std::unordered_map::at
or operator
?
c++ stl insert unordered-map
c++ stl insert unordered-map
edited Nov 12 '18 at 2:15
asked Nov 12 '18 at 1:07
Iamanon
967
967
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
map1[2]=5;
If an entry with key 2
exists, set that entry's value to 5
. Otherwise, create a new entry with key 2
and value 5
.
map1.insert({2,5});
If no entry with key 2
exists, create a new entry with key 2
and value 5
. Otherwise, do nothing.
mappedVal = map1.at(2);
If an entry with key 2
exists, assign its value to mappedVal
. Otherwise, throw an out_of_range
exception.
mappedVal = map1[2];
If an entry with key 2
exists, assign its value to mappedVal. Otherwise, create an entry for 2
using the default value and assign that default value to mappedVal.
For lookups, I usually use unordered_map::find()
rather than at()
or operator ()
(unless I know that there is an entry for the given key).
add a comment |
In contrast to operator
, at()
will throw a std::out_of_range
exception if the key doesn't exist. operator
will create the key instead.
Thanks. So I take this to mean that if I want to find the value at what I "think" is an existing key, then it would be safer to useat()
?
– Iamanon
Nov 12 '18 at 1:17
1
@lamanon Sir, yes, Sir!
– Swordfish
Nov 12 '18 at 1:20
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53254822%2fis-there-any-difference-between-the-following-commands-from-stdunordered-map%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
map1[2]=5;
If an entry with key 2
exists, set that entry's value to 5
. Otherwise, create a new entry with key 2
and value 5
.
map1.insert({2,5});
If no entry with key 2
exists, create a new entry with key 2
and value 5
. Otherwise, do nothing.
mappedVal = map1.at(2);
If an entry with key 2
exists, assign its value to mappedVal
. Otherwise, throw an out_of_range
exception.
mappedVal = map1[2];
If an entry with key 2
exists, assign its value to mappedVal. Otherwise, create an entry for 2
using the default value and assign that default value to mappedVal.
For lookups, I usually use unordered_map::find()
rather than at()
or operator ()
(unless I know that there is an entry for the given key).
add a comment |
map1[2]=5;
If an entry with key 2
exists, set that entry's value to 5
. Otherwise, create a new entry with key 2
and value 5
.
map1.insert({2,5});
If no entry with key 2
exists, create a new entry with key 2
and value 5
. Otherwise, do nothing.
mappedVal = map1.at(2);
If an entry with key 2
exists, assign its value to mappedVal
. Otherwise, throw an out_of_range
exception.
mappedVal = map1[2];
If an entry with key 2
exists, assign its value to mappedVal. Otherwise, create an entry for 2
using the default value and assign that default value to mappedVal.
For lookups, I usually use unordered_map::find()
rather than at()
or operator ()
(unless I know that there is an entry for the given key).
add a comment |
map1[2]=5;
If an entry with key 2
exists, set that entry's value to 5
. Otherwise, create a new entry with key 2
and value 5
.
map1.insert({2,5});
If no entry with key 2
exists, create a new entry with key 2
and value 5
. Otherwise, do nothing.
mappedVal = map1.at(2);
If an entry with key 2
exists, assign its value to mappedVal
. Otherwise, throw an out_of_range
exception.
mappedVal = map1[2];
If an entry with key 2
exists, assign its value to mappedVal. Otherwise, create an entry for 2
using the default value and assign that default value to mappedVal.
For lookups, I usually use unordered_map::find()
rather than at()
or operator ()
(unless I know that there is an entry for the given key).
map1[2]=5;
If an entry with key 2
exists, set that entry's value to 5
. Otherwise, create a new entry with key 2
and value 5
.
map1.insert({2,5});
If no entry with key 2
exists, create a new entry with key 2
and value 5
. Otherwise, do nothing.
mappedVal = map1.at(2);
If an entry with key 2
exists, assign its value to mappedVal
. Otherwise, throw an out_of_range
exception.
mappedVal = map1[2];
If an entry with key 2
exists, assign its value to mappedVal. Otherwise, create an entry for 2
using the default value and assign that default value to mappedVal.
For lookups, I usually use unordered_map::find()
rather than at()
or operator ()
(unless I know that there is an entry for the given key).
edited Nov 12 '18 at 2:34
answered Nov 12 '18 at 2:05
Sid S
3,5582723
3,5582723
add a comment |
add a comment |
In contrast to operator
, at()
will throw a std::out_of_range
exception if the key doesn't exist. operator
will create the key instead.
Thanks. So I take this to mean that if I want to find the value at what I "think" is an existing key, then it would be safer to useat()
?
– Iamanon
Nov 12 '18 at 1:17
1
@lamanon Sir, yes, Sir!
– Swordfish
Nov 12 '18 at 1:20
add a comment |
In contrast to operator
, at()
will throw a std::out_of_range
exception if the key doesn't exist. operator
will create the key instead.
Thanks. So I take this to mean that if I want to find the value at what I "think" is an existing key, then it would be safer to useat()
?
– Iamanon
Nov 12 '18 at 1:17
1
@lamanon Sir, yes, Sir!
– Swordfish
Nov 12 '18 at 1:20
add a comment |
In contrast to operator
, at()
will throw a std::out_of_range
exception if the key doesn't exist. operator
will create the key instead.
In contrast to operator
, at()
will throw a std::out_of_range
exception if the key doesn't exist. operator
will create the key instead.
answered Nov 12 '18 at 1:10
Swordfish
1
1
Thanks. So I take this to mean that if I want to find the value at what I "think" is an existing key, then it would be safer to useat()
?
– Iamanon
Nov 12 '18 at 1:17
1
@lamanon Sir, yes, Sir!
– Swordfish
Nov 12 '18 at 1:20
add a comment |
Thanks. So I take this to mean that if I want to find the value at what I "think" is an existing key, then it would be safer to useat()
?
– Iamanon
Nov 12 '18 at 1:17
1
@lamanon Sir, yes, Sir!
– Swordfish
Nov 12 '18 at 1:20
Thanks. So I take this to mean that if I want to find the value at what I "think" is an existing key, then it would be safer to use
at()
?– Iamanon
Nov 12 '18 at 1:17
Thanks. So I take this to mean that if I want to find the value at what I "think" is an existing key, then it would be safer to use
at()
?– Iamanon
Nov 12 '18 at 1:17
1
1
@lamanon Sir, yes, Sir!
– Swordfish
Nov 12 '18 at 1:20
@lamanon Sir, yes, Sir!
– Swordfish
Nov 12 '18 at 1:20
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53254822%2fis-there-any-difference-between-the-following-commands-from-stdunordered-map%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown