Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6661011
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T02:13:35+00:00 2026-05-26T02:13:35+00:00

I know STL containers copy the objects. So say I have a list<SampleClass> l;

  • 0

I know STL containers copy the objects. So say I have a

list<SampleClass> l;

each time when I do

SampleClass t(...);
l.push_back(t);

a copy of t will be made. If SampleClass is large, then it will be very costly.

But if I declare l as a container of references,

list<SampleClass&> l;

When I do

l.push_back(t);

Will it avoid copying the objects?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T02:13:35+00:00Added an answer on May 26, 2026 at 2:13 am

    Sadly no, it won’t compile (with stlport at least). But the alternative, which is to store pointers to your objects in the container, will compile perfectly fine.

    This will leave you with a bit of extra syntactic noise around your code – you’ll have to new things in order to insert them into your container.

    std::list<class_type*> l;
    l.push_back(new class_type);
    

    However though the objects now won’t be copied, they also won’t be automatically cleaned up for you when the list is destructed. Smart pointers will solve this for you, but at the cost of even more syntactic noise. And since you can’t put std::auto_ptr’s in standard containers because they can’t be copied, you have to use their slightly heavier-weight boost cousins, shared pointers.

    std::list<boost::shared_ptr<class_type> > l;
    l.push_back(boost::shared_ptr<class_type>(new class_type));
    

    Shared pointed do incur some extra overhead, but it is minimal.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I know STL containers like vector copies the object when it is added. push_back
Does anyone know why the STL containers don't have virtual destructors? As far as
anyone know of a complete list of the differences in Microsofts implementation of STL
I'm writing a lighter version of some containers from STL for myself. (I know
I have a STL container full of billions of the following objects pair<SomeClass*, SomeClass*>
In the STL almost all containers have an erase function. The question I have
If i iterate over a STL container i sometimes need to know if the
Using C++ and the STL, does anybody know how to store integer arrays as
Just now, I'm reading Josuttis' STL book. As far as I know -- c++
When looking over the member functions of the STL containers, an odd thought occurred

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.