我们在前面讲了stl中常见的容器:顺序容器(string,vector,deque,stack,queue,list)和关联式容器(set,map)。
本节主要讨论一下,以上各种容器中,数据是如何传递的。
数据的传递的方式主要有一下几种:
- 传值:一份数据,进行值传递,会在内存空间上开辟多份存储空间。涉及拷贝操作。
- 传指针:传递的是数据的地址,不涉及拷贝操作。
- 传引用:跟传指针一样。
STL中数据是以值的方式进行传递的,STL中的元素对象都要能够拷贝,否则无法插入STL容器中。谈到拷贝,那么不可避免的要讨论一下深拷贝浅拷贝的问题。
我们先来看一段代码:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Teacher{
public:
int age;
char * name;
Teacher(char *name, int age){
int len = strlen(name) + 1;