Adding empty element to declared container without declaring type of element Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar Manara Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!How to add element to C++ array?Why can't variables be declared in a switch statement?What are POD types in C++?How do you declare an interface in C++?Meaning of 'const' last in a function declaration of a class?Pretty-print C++ STL containersHow to implement dynamic element container in C++Is it wrong if the standard container element type and std::allocator type are different?Ending lifetime of STL container without calling the destructorenum to string in modern C++11 / C++14 / C++17 and future C++20STL container holding class within declaration of that class
Suing a Police Officer Instead of the Police Department
How would it unbalance gameplay to rule that Weapon Master allows for picking a fighting style?
Will I be more secure with my own router behind my ISP's router?
Writing a T-SQL stored procedure to receive 4 numbers and insert them into a table
Determinant of a matrix with 2 equal rows
false 'Security alert' from Google - every login generates mails from 'no-reply@accounts.google.com'
Raising a bilingual kid. When should we introduce the majority language?
What happened to Viserion in Season 7?
Where can I find how to tex symbols for different fonts?
Are these square matrices always diagonalisable?
When I export an AI 300x60 art board it saves with bigger dimensions
Simulate round-robin tournament draw
How to translate "red flag" into Spanish?
What is the numbering system used for the DSN dishes?
My admission is revoked after accepting the admission offer
Are there existing rules/lore for MTG planeswalkers?
What's called a person who works as someone who puts products on shelves in stores?
Does Prince Arnaud cause someone holding the Princess to lose?
What is the evidence that custom checks in Northern Ireland are going to result in violence?
What was Apollo 13's "Little Jolt" after MECO?
Where to find documentation for `whois` command options?
Protagonist's race is hidden - should I reveal it?
Married in secret, can marital status in passport be changed at a later date?
Why isPrototypeOf() returns false?
Adding empty element to declared container without declaring type of element
Unicorn Meta Zoo #1: Why another podcast?
Announcing the arrival of Valued Associate #679: Cesar Manara
Data science time! April 2019 and salary with experience
The Ask Question Wizard is Live!How to add element to C++ array?Why can't variables be declared in a switch statement?What are POD types in C++?How do you declare an interface in C++?Meaning of 'const' last in a function declaration of a class?Pretty-print C++ STL containersHow to implement dynamic element container in C++Is it wrong if the standard container element type and std::allocator type are different?Ending lifetime of STL container without calling the destructorenum to string in modern C++11 / C++14 / C++17 and future C++20STL container holding class within declaration of that class
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
When we use a complicated container in C++, like
std::vector<std::map<std::string, std::set<std::string>>> table;
The only way to add an empty map (which may represent a row or column) is to initialize a new element and push it back. For example with
table.push_back(std::map<std::string, std::set<std::string>>());
Is there any way to avoid redeclaring the type, and just adding the correct typed element?
c++ c++11
add a comment |
When we use a complicated container in C++, like
std::vector<std::map<std::string, std::set<std::string>>> table;
The only way to add an empty map (which may represent a row or column) is to initialize a new element and push it back. For example with
table.push_back(std::map<std::string, std::set<std::string>>());
Is there any way to avoid redeclaring the type, and just adding the correct typed element?
c++ c++11
add a comment |
When we use a complicated container in C++, like
std::vector<std::map<std::string, std::set<std::string>>> table;
The only way to add an empty map (which may represent a row or column) is to initialize a new element and push it back. For example with
table.push_back(std::map<std::string, std::set<std::string>>());
Is there any way to avoid redeclaring the type, and just adding the correct typed element?
c++ c++11
When we use a complicated container in C++, like
std::vector<std::map<std::string, std::set<std::string>>> table;
The only way to add an empty map (which may represent a row or column) is to initialize a new element and push it back. For example with
table.push_back(std::map<std::string, std::set<std::string>>());
Is there any way to avoid redeclaring the type, and just adding the correct typed element?
c++ c++11
c++ c++11
edited Mar 25 at 10:41
Mohammad Usman
21.6k134859
21.6k134859
asked Mar 25 at 6:35
VineetVineet
364411
364411
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
From CLion's IntelliSense, I later found that one useful method is emplace_back()
. This constructs a new object of correct type and adds it to the end of the vector.
table.emplace_back();
add a comment |
You can take advantage of copy-list-initialization (since C++11) and just write
table.push_back();
add a comment |
Before C++11 sometimes I use x.resize(x.size()+1)
, in C++11 or later you can use x.push_back()
.
add a comment |
Though the other answers are correct, I will add that if you couldn't take that approach, you could have benefitted from declaring some type aliases to shorten that container type name.
I can of course only guess at the logical meaning of your containers, which is another thing that this fixes!
using PhilosopherNameType = std::string;
using NeighboursType = std::set<PhilosopherNameType>;
using NeighbourMapType = std::map<PhilosopherNameType, NeighboursType>;
std::vector<NeighbourMapType> table;
table.push_back(NeighbourMapType());
I mention this because you can likely still benefit from this in other places.
2
agreed. Along the same lines are the types that the STL gives you (vector::value_type iirc)
– sudo rm -rf slash
Mar 26 at 8:01
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%2f55332359%2fadding-empty-element-to-declared-container-without-declaring-type-of-element%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
From CLion's IntelliSense, I later found that one useful method is emplace_back()
. This constructs a new object of correct type and adds it to the end of the vector.
table.emplace_back();
add a comment |
From CLion's IntelliSense, I later found that one useful method is emplace_back()
. This constructs a new object of correct type and adds it to the end of the vector.
table.emplace_back();
add a comment |
From CLion's IntelliSense, I later found that one useful method is emplace_back()
. This constructs a new object of correct type and adds it to the end of the vector.
table.emplace_back();
From CLion's IntelliSense, I later found that one useful method is emplace_back()
. This constructs a new object of correct type and adds it to the end of the vector.
table.emplace_back();
edited Mar 25 at 7:12
answered Mar 25 at 6:51
VineetVineet
364411
364411
add a comment |
add a comment |
You can take advantage of copy-list-initialization (since C++11) and just write
table.push_back();
add a comment |
You can take advantage of copy-list-initialization (since C++11) and just write
table.push_back();
add a comment |
You can take advantage of copy-list-initialization (since C++11) and just write
table.push_back();
You can take advantage of copy-list-initialization (since C++11) and just write
table.push_back();
edited Mar 25 at 6:46
answered Mar 25 at 6:37
songyuanyaosongyuanyao
95k11185252
95k11185252
add a comment |
add a comment |
Before C++11 sometimes I use x.resize(x.size()+1)
, in C++11 or later you can use x.push_back()
.
add a comment |
Before C++11 sometimes I use x.resize(x.size()+1)
, in C++11 or later you can use x.push_back()
.
add a comment |
Before C++11 sometimes I use x.resize(x.size()+1)
, in C++11 or later you can use x.push_back()
.
Before C++11 sometimes I use x.resize(x.size()+1)
, in C++11 or later you can use x.push_back()
.
answered Mar 25 at 6:49
65026502
88.2k13117218
88.2k13117218
add a comment |
add a comment |
Though the other answers are correct, I will add that if you couldn't take that approach, you could have benefitted from declaring some type aliases to shorten that container type name.
I can of course only guess at the logical meaning of your containers, which is another thing that this fixes!
using PhilosopherNameType = std::string;
using NeighboursType = std::set<PhilosopherNameType>;
using NeighbourMapType = std::map<PhilosopherNameType, NeighboursType>;
std::vector<NeighbourMapType> table;
table.push_back(NeighbourMapType());
I mention this because you can likely still benefit from this in other places.
2
agreed. Along the same lines are the types that the STL gives you (vector::value_type iirc)
– sudo rm -rf slash
Mar 26 at 8:01
add a comment |
Though the other answers are correct, I will add that if you couldn't take that approach, you could have benefitted from declaring some type aliases to shorten that container type name.
I can of course only guess at the logical meaning of your containers, which is another thing that this fixes!
using PhilosopherNameType = std::string;
using NeighboursType = std::set<PhilosopherNameType>;
using NeighbourMapType = std::map<PhilosopherNameType, NeighboursType>;
std::vector<NeighbourMapType> table;
table.push_back(NeighbourMapType());
I mention this because you can likely still benefit from this in other places.
2
agreed. Along the same lines are the types that the STL gives you (vector::value_type iirc)
– sudo rm -rf slash
Mar 26 at 8:01
add a comment |
Though the other answers are correct, I will add that if you couldn't take that approach, you could have benefitted from declaring some type aliases to shorten that container type name.
I can of course only guess at the logical meaning of your containers, which is another thing that this fixes!
using PhilosopherNameType = std::string;
using NeighboursType = std::set<PhilosopherNameType>;
using NeighbourMapType = std::map<PhilosopherNameType, NeighboursType>;
std::vector<NeighbourMapType> table;
table.push_back(NeighbourMapType());
I mention this because you can likely still benefit from this in other places.
Though the other answers are correct, I will add that if you couldn't take that approach, you could have benefitted from declaring some type aliases to shorten that container type name.
I can of course only guess at the logical meaning of your containers, which is another thing that this fixes!
using PhilosopherNameType = std::string;
using NeighboursType = std::set<PhilosopherNameType>;
using NeighbourMapType = std::map<PhilosopherNameType, NeighboursType>;
std::vector<NeighbourMapType> table;
table.push_back(NeighbourMapType());
I mention this because you can likely still benefit from this in other places.
answered Mar 25 at 17:12
Lightness Races in OrbitLightness Races in Orbit
296k55480820
296k55480820
2
agreed. Along the same lines are the types that the STL gives you (vector::value_type iirc)
– sudo rm -rf slash
Mar 26 at 8:01
add a comment |
2
agreed. Along the same lines are the types that the STL gives you (vector::value_type iirc)
– sudo rm -rf slash
Mar 26 at 8:01
2
2
agreed. Along the same lines are the types that the STL gives you (vector::value_type iirc)
– sudo rm -rf slash
Mar 26 at 8:01
agreed. Along the same lines are the types that the STL gives you (vector::value_type iirc)
– sudo rm -rf slash
Mar 26 at 8:01
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.
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%2f55332359%2fadding-empty-element-to-declared-container-without-declaring-type-of-element%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