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)详 ...
随机推荐
- Python - importlib 模块
importlib 模块可以根据字符串来导入相应的模块 目录结构: 在根目录下创建 importlib_test.py 和 aaa/bbb.py bbb.py: class Person(object ...
- 搭建FTP(win10版)以及基本FTP操作
参考链接:https://www.jianshu.com/p/ece21421e246 一.FTP服务器搭建 控制面板 - 程序和功能 - 启动或关闭Windows功能 启动以下功能: 搜索 “Int ...
- (转) C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库
原贴链接:https://www.cnblogs.com/mq0036/p/11052359.html C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracl ...
- c# socket 心跳 重连
/// <summary> /// 检查一个Socket是否可连接 /// </summary> /// <param name="socket"&g ...
- 使用Qt画出直方图和分位数图
https://blog.csdn.net/gudanai/article/details/72136420
- Java程序员经典面试题+答案(全)
这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试. 关注公众号[Java典籍]免费赠送一套Java入门视频教程一套! ...
- AX 2012 Computed column IIF语句使用
涉及Dynamics ax 行业已经好几年了,准备总结一些有用的处理方法供大家来参考 首先先介绍下Computed column技术,该技术是微软在AX2012版本中提供的新技术,可以让SQL语句在A ...
- 开启Telnet服务
在Win7系统中安装和启动Telnet服务非常简单:依次点击“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows功能”进入Windows 功能设置对话框.找到并勾选“ ...
- SSM前后端分离 ssm+html+js(ajax) 这种controll层的返回值是结合或者网址
提示: 1.单表查询多条数据用 list<实体类名字> mapper层 1.1单表查询单条数据用 对象 2.两表关联查多条 list<map<String,Object> ...
- Java自学-操作符 位操作符
Java的位操作符 位操作符 在实际工作中使用并不常见. 示例 1 : 一个整数的二进制表达 位操作都是对二进制而言的,但是我们平常使用的都是十进制比如5. 而5的二进制是101. 所以在开始学习之前 ...