STL::List的对象存储与释放

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 写了一个小程序,来检查一下List中如何管理存储的对象。 #include "stdafx.h"#include #include using namespace std; class MyClass{  public:  int nMemb...

写了一个小程序,来检查一下List中如何管理存储的对象。

#include "stdafx.h"
#include <list>
#include <iostream>

using namespace std;

class MyClass
{
  public:
  int nMember;
  int * pMember;
  public:
   
    MyClass(void)
 {
  cout<<"New my Class"<<endl;
  nMember = 0;
  pMember = &nMember;
  cout<<" pMember is "<<pMember<<endl;
 };

 ~MyClass(void)
 {
  cout<<"Free my Class"<<endl;
  cout<<" The number is "<<nMember<<endl;
  cout<<" pMember is "<<pMember<<endl;
  cout<<" *pMember is "<<*pMember<<endl;
  *pMember = 15;
 }
};


int _tmain(int argc, _TCHAR* argv[])
{
 list<MyClass> m_Container;
 
 MyClass *a = new MyClass();

 a->nMember = 1;

 m_Container.push_back(*a);

 a->nMember = 2;
 delete a;

 return 0;
}

 

程序的运行结果如下:

STL::List的对象存储与释放
显然当调用push_back时,生成了一个新的实例,所以出现了两个析构函数的调用。同时观察一下pMember值的变化,这可是很容易出问题的地方!

 

如果List存储的是对象指针可就要小心了。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
21天前
|
编译器 C++ 容器
【C++/STL】:list容器的深度剖析及模拟实现
【C++/STL】:list容器的深度剖析及模拟实现
17 2
|
19天前
|
编译器 C语言 C++
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
|
21天前
|
存储 C++ 容器
【C++/STL】:list容器的基本使用
【C++/STL】:list容器的基本使用
16 1
|
12天前
|
存储 算法 程序员
C++基础知识(八:STL标准库(Vectors和list))
C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 stacks(栈)等. STL容器的提供是为了让开发者可以更高效率的去开发,同时我们应该也需要知道他们的底层实现,这样在出现错误的时候我们才知道一些原因,才可以更好的去解决问题。
|
1月前
|
存储 C++
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
31 7
|
14天前
|
算法 C语言 C++
【C++】详解STL的容器之一:list
【C++】详解STL的容器之一:list
|
1月前
|
C++ 容器
9.STL中list的常见操作(图文并茂)
9.STL中list的常见操作(图文并茂)
|
2月前
|
存储 C++ 容器
黑马c++ STL部分 笔记(7) list容器
黑马c++ STL部分 笔记(7) list容器
|
1月前
|
存储 缓存 编译器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
14 0
|
1月前
|
C++ 容器
【C++进阶】深入STL之list:高效双向链表的使用技巧
【C++进阶】深入STL之list:高效双向链表的使用技巧
20 0