c++中排序容器的基类
Base class of sorted containers in C++
c++是否有像std::set或std:map这样的有序容器的公共基类?
背景:我想实现一个泛型函数,删除在另一个容器中找不到的容器中的所有元素。作为先决条件,我想定义传递的容器必须排序。
c++是否有像std::set或std:map这样的有序容器的公共基类?
不,它们没有共同的基类。
您可以使用它们特定的iterator
类型来依赖模板化实现中的共性。
没有泛型类
但是它们有相似的机制:迭代器。让我举个例子:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <list>
using namespace std;
template<class InputIterator>
void printContainer(InputIterator begin_it,InputIterator end_it)
{
while (begin_it != end_it)
{
cout << (*begin_it) << ' ';
begin_it++;
}
cout << endl;
}
int main()
{
vector<int> vector_data;
list<int> list_data;
srand(time(0));
for (int i = 0;i < 5;i++)
{
int n = rand() % 10;
vector_data.push_back(n);
list_data.push_back(n);
}
printContainer(vector_data.begin(),vector_data.end());
printContainer(list_data.begin(),list_data.end());
}
检查算法库,它有泛型容器的函数:http://www.cplusplus.com/reference/algorithm/
相关文章:
- std::具有相同基类的类的变体
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 基类中的函数名称解析
- C++初始化基类
- 如何通过派生类函数更改基类中的向量
- 如何定义一个纯抽象基类
- 如何使用基类指针引用派生类成员
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何引用基类的派生类?
- 如果基类包含双指针成员,则派生类的构造函数
- 在模板基类中为继承类中的可选重写生成虚拟方法
- 为什么此派生对象无法访问基类的后递减方法?
- 公开最直接的基类模板名称
- 当基类是依赖类型时,这是一个缺陷吗
- 如何使基类的运算符对基类的可变参数数可见(请参阅下面的代码)?
- 模板基类中的静态变量
- C++ 继承:将子类传递给需要基类的函数并获取子类行为
- c++中排序容器的基类