Adding empty element to declared container without declaring type of element The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) The Ask Question Wizard is Live! Data science time! April 2019 and salary with experienceHow 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

The variadic template constructor of my class cannot modify my class members, why is that so?

Do working physicists consider Newtonian mechanics to be "falsified"?

How to politely respond to generic emails requesting a PhD/job in my lab? Without wasting too much time

Semisimplicity of the category of coherent sheaves?

Why is superheterodyning better than direct conversion?

The following signatures were invalid: EXPKEYSIG 1397BC53640DB551

How to split my screen on my Macbook Air?

Did God make two great lights or did He make the great light two?

How should I replace vector<uint8_t>::const_iterator in an API?

How do I add random spotting to the same face in cycles?

University's motivation for having tenure-track positions

Wall plug outlet change

Was credit for the black hole image misattributed?

Why did all the guest students take carriages to the Yule Ball?

Why does the Event Horizon Telescope (EHT) not include telescopes from Africa, Asia or Australia?

Segmentation fault output is suppressed when piping stdin into a function. Why?

Difference between "generating set" and free product?

How is simplicity better than precision and clarity in prose?

How did the audience guess the pentatonic scale in Bobby McFerrin's presentation?

Did the new image of black hole confirm the general theory of relativity?

How are presidential pardons supposed to be used?

When did F become S in typeography, and why?

Mortgage adviser recommends a longer term than necessary combined with overpayments

What is special about square numbers here?



Adding empty element to declared container without declaring type of element



The 2019 Stack Overflow Developer Survey Results Are In
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
The Ask Question Wizard is Live!
Data science time! April 2019 and salary with experienceHow 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;








14















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?










share|improve this question






























    14















    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?










    share|improve this question


























      14












      14








      14








      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?










      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 25 at 10:41









      Mohammad Usman

      21.6k134859




      21.6k134859










      asked Mar 25 at 6:35









      VineetVineet

      359411




      359411






















          4 Answers
          4






          active

          oldest

          votes


















          33














          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();





          share|improve this answer
































            24














            You can take advantage of copy-list-initialization (since C++11) and just write



            table.push_back();





            share|improve this answer
































              10














              Before C++11 sometimes I use x.resize(x.size()+1), in C++11 or later you can use x.push_back().






              share|improve this answer






























                5














                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.






                share|improve this answer


















                • 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











                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
                );



                );













                draft saved

                draft discarded


















                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









                33














                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();





                share|improve this answer





























                  33














                  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();





                  share|improve this answer



























                    33












                    33








                    33







                    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();





                    share|improve this answer















                    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();






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Mar 25 at 7:12

























                    answered Mar 25 at 6:51









                    VineetVineet

                    359411




                    359411























                        24














                        You can take advantage of copy-list-initialization (since C++11) and just write



                        table.push_back();





                        share|improve this answer





























                          24














                          You can take advantage of copy-list-initialization (since C++11) and just write



                          table.push_back();





                          share|improve this answer



























                            24












                            24








                            24







                            You can take advantage of copy-list-initialization (since C++11) and just write



                            table.push_back();





                            share|improve this answer















                            You can take advantage of copy-list-initialization (since C++11) and just write



                            table.push_back();






                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited Mar 25 at 6:46

























                            answered Mar 25 at 6:37









                            songyuanyaosongyuanyao

                            94.4k11182250




                            94.4k11182250





















                                10














                                Before C++11 sometimes I use x.resize(x.size()+1), in C++11 or later you can use x.push_back().






                                share|improve this answer



























                                  10














                                  Before C++11 sometimes I use x.resize(x.size()+1), in C++11 or later you can use x.push_back().






                                  share|improve this answer

























                                    10












                                    10








                                    10







                                    Before C++11 sometimes I use x.resize(x.size()+1), in C++11 or later you can use x.push_back().






                                    share|improve this answer













                                    Before C++11 sometimes I use x.resize(x.size()+1), in C++11 or later you can use x.push_back().







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered Mar 25 at 6:49









                                    65026502

                                    88k13115218




                                    88k13115218





















                                        5














                                        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.






                                        share|improve this answer


















                                        • 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















                                        5














                                        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.






                                        share|improve this answer


















                                        • 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













                                        5












                                        5








                                        5







                                        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.






                                        share|improve this answer













                                        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.







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered Mar 25 at 17:12









                                        Lightness Races in OrbitLightness Races in Orbit

                                        295k55479816




                                        295k55479816







                                        • 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





                                          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

















                                        draft saved

                                        draft discarded
















































                                        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.




                                        draft saved


                                        draft discarded














                                        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





















































                                        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







                                        Popular posts from this blog

                                        Solar Wings Breeze Design and development Specifications (Breeze) References Navigation menu1368-485X"Hang glider: Breeze (Solar Wings)"e

                                        Kathakali Contents Etymology and nomenclature History Repertoire Songs and musical instruments Traditional plays Styles: Sampradayam Training centers and awards Relationship to other dance forms See also Notes References External links Navigation menueThe Illustrated Encyclopedia of Hinduism: A-MSouth Asian Folklore: An EncyclopediaRoutledge International Encyclopedia of Women: Global Women's Issues and KnowledgeKathakali Dance-drama: Where Gods and Demons Come to PlayKathakali Dance-drama: Where Gods and Demons Come to PlayKathakali Dance-drama: Where Gods and Demons Come to Play10.1353/atj.2005.0004The Illustrated Encyclopedia of Hinduism: A-MEncyclopedia of HinduismKathakali Dance-drama: Where Gods and Demons Come to PlaySonic Liturgy: Ritual and Music in Hindu Tradition"The Mirror of Gesture"Kathakali Dance-drama: Where Gods and Demons Come to Play"Kathakali"Indian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceMedieval Indian Literature: An AnthologyThe Oxford Companion to Indian TheatreSouth Asian Folklore: An Encyclopedia : Afghanistan, Bangladesh, India, Nepal, Pakistan, Sri LankaThe Rise of Performance Studies: Rethinking Richard Schechner's Broad SpectrumIndian Theatre: Traditions of PerformanceModern Asian Theatre and Performance 1900-2000Critical Theory and PerformanceBetween Theater and AnthropologyKathakali603847011Indian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceBetween Theater and AnthropologyBetween Theater and AnthropologyNambeesan Smaraka AwardsArchivedThe Cambridge Guide to TheatreRoutledge International Encyclopedia of Women: Global Women's Issues and KnowledgeThe Garland Encyclopedia of World Music: South Asia : the Indian subcontinentThe Ethos of Noh: Actors and Their Art10.2307/1145740By Means of Performance: Intercultural Studies of Theatre and Ritual10.1017/s204912550000100xReconceiving the Renaissance: A Critical ReaderPerformance TheoryListening to Theatre: The Aural Dimension of Beijing Opera10.2307/1146013Kathakali: The Art of the Non-WorldlyOn KathakaliKathakali, the dance theatreThe Kathakali Complex: Performance & StructureKathakali Dance-Drama: Where Gods and Demons Come to Play10.1093/obo/9780195399318-0071Drama and Ritual of Early Hinduism"In the Shadow of Hollywood Orientalism: Authentic East Indian Dancing"10.1080/08949460490274013Sanskrit Play Production in Ancient IndiaIndian Music: History and StructureBharata, the Nāṭyaśāstra233639306Table of Contents2238067286469807Dance In Indian Painting10.2307/32047833204783Kathakali Dance-Theatre: A Visual Narrative of Sacred Indian MimeIndian Classical Dance: The Renaissance and BeyondKathakali: an indigenous art-form of Keralaeee

                                        Method to test if a number is a perfect power? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)Detecting perfect squares faster than by extracting square rooteffective way to get the integer sequence A181392 from oeisA rarely mentioned fact about perfect powersHow many numbers such $n$ are there that $n<100,lfloorsqrtn rfloor mid n$Check perfect squareness by modulo division against multiple basesFor what pair of integers $(a,b)$ is $3^a + 7^b$ a perfect square.Do there exist any positive integers $n$ such that $lfloore^nrfloor$ is a perfect power? What is the probability that one exists?finding perfect power factors of an integerProve that the sequence contains a perfect square for any natural number $m $ in the domain of $f$ .Counting Perfect Powers