C++(五十) — 容器中元素满足的条件
容器中的内容必须满足三个条件:
- (1)无参构造函数
- (2)拷贝构造函数
- (3)重载 = 运算符
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <vector>
#include<functional>
using namespace std; class Teacher
{
public:
Teacher(char *name, int age)
{
m_name = new char[strlen(name) + ];
strcpy(m_name, name);
m_age = age;
}
~Teacher()
{
if (m_name != nullptr)
{
delete[]m_name;
m_name = nullptr;
m_age = ;
}
}
Teacher(const Teacher &obj)
{
m_name = new char[strlen(obj.m_name) + ];
strcpy(m_name, obj.m_name);
m_age = obj.m_age;
}
// 重载等号操作符
Teacher& operator+(const Teacher &obj)
{
if (m_name != nullptr)
{
delete[]m_name;
m_name = nullptr;
m_age = ;
}
m_name = new char[strlen(obj.m_name) + ];
strcpy(m_name, obj.m_name);
m_age = obj.m_age;
return *this;
}
void printT()
{
cout << m_name << " " << m_age << endl;
}
private:
char *m_name;
int m_age;
};
/*
//容器必须满足三个条件
(1)无参构造函数
(2)拷贝构造函数
(3)重载 = 运算符
*/
int main()
{
Teacher t1("t1", );
vector<Teacher> v1;
v1.push_back(t1);
t1.printT(); system("pause");
return ;
}
C++(五十) — 容器中元素满足的条件的更多相关文章
- C++11新特性应用--介绍几个新增的便利算法(不更改容器中元素顺序的算法)
总所周知.C++ STL中有个头文件,名为algorithm.即算法的意思. The header<algorithm>defines a collection of functions ...
- 遍历并批量删除容器中元素出现ConcurrentModificationException原因及处置
在以下四种遍历过程中,前两种会抛出ConcurrentModificationException,而后两种方法是正确的. Department类: package com.sitinspring; i ...
- C++中如何在顺序容器中删除符合特定条件的元素
以前很少做删除操作,vector一直当成数组用,而实际追求效率时又经常舍弃vector选用C风格数组.看<C++ Primer>到顺序容器删除这节时试着实现课后习题结果一动手我就出错了. ...
- c++ 使用模板按类型统计stl多维容器中元素的数量
struct ItemCounter{template<typename T1, typename T2, typename = typename std::enable_if<!std: ...
- 容器中元素的去重——ans.erase(unique(ans.begin(),ans.end()),ans.end());
啊,原来unique()函数,只是处理的连续的元素,比如 -1 -1 -1 1 2 -1 2 就处理成了 -1 1 2 -1 2 -1 -1并且返回5,之后eraser(5,7)剩下了 -1 1 2 ...
- c++ 容器中元素计数
#include <iostream>#include <algorithm>#include <vector>#include <functional> ...
- 【String注解驱动开发】如何按照条件向Spring容器中注册bean?这次我懂了!!
写在前面 当bean是单实例,并且没有设置懒加载时,Spring容器启动时,就会实例化bean,并将bean注册到IOC容器中,以后每次从IOC容器中获取bean时,直接返回IOC容器中的bean,不 ...
- Java提高十五:容器元素比较Comparable&Comparator深入分析
我们经常用容器来存放元素,通常而言我们是不关系容器中的元素是否有序,但有些场景可能要求容器中的元素是有序的,这个时候用ArrayList LinkedList Hashtable HashMap ...
- 第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中
第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详 ...
随机推荐
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器出现no compatible source was found for this media问题的解决
背景分析 EasyDSS流媒体解决方案总体可划分成三个部分:前端视频源设备(PC.手机.摄像机)流媒体数据获取并即时回传.流媒体服务器端直播和录像与回放.客户端直播播放与录像检索回放.前端推流我们使用 ...
- 【转】kettle7.1资源库无法打开,找不到connect按钮的问题处理
转自:https://www.aboutyun.com/home.php?mod=space&uid=71645&do=blog&id=3535 kettle是一个比较好用的E ...
- openssl 和libcurl的安装
/usr/lib/aarch64-linux-gnu/qt5/bin/qmake CONFIG+=release 1 SET(CMAKE_PREFIX_PATH /home/qilin64/Qt5.6 ...
- replace into 详解 update mysql
转replace 与 update 区分本文主要对比一下 Sqlite 中的 replace 语句和 update 语句 . 在本例中使用如下数据库表: 图1 该表的表名为student, 存储学 ...
- IIS部署FLASK网站
在 Windows 平台部署基于 Python 的网站是一件非常折腾的事情,Linux/Unix 平台下有很多选择,本文记录了 Flask 部署到 IIS 的主要步骤,希望对你有所帮助. 涉及工具和平 ...
- Swagger2生成后台的API文档
添加依赖: <!--Swagger2API生成--> <dependency> <groupId>io.springfox</groupId> < ...
- sql语句修改数据库字段的长度
修改字段的长度 alter table [OtpimizeRoute_Test].[dbo].[T_QueueFile] alter column ListFileName nvarchar()
- php 函数篇
1.array_values($data); 注:将关联数组转化为索引数组 <?php $a=array("Name"=>"Bill"," ...
- linux redis 安装和密码设置
1.下载redis wget http://download.redis.io/releases/redis-4.0.8.tar.gz 2.解压 tar xzvf redis-4.0.8.tar.gz ...
- CLRS10.2-8练习 - 单指针值实现双向链表
要求: Explain how to implement doubly linked lists using only one pointer value x.np peritem instead o ...