小编Sha*_*eaR的帖子

标准库容器的通用函数模板

我正在尝试编写一个简单的通用函数来迭代容器元素.每个元素都转换为std::string(无论如何)并存储在另一个地方.基本版本是微不足道的:

template<class Container>
void ContainerWork(const Container& c)
{
    for(const auto& elem : c) {
        /* convert to string and store*/
    }
}
Run Code Online (Sandbox Code Playgroud)

然后有必要为值类型std::string和代码转换为容器的容器添加特化:

template<typename T, template<typename, typename> class Container, class Allocator>
void ContainerWork(Container<T, Allocator> c)
{
    for(const T& elem : c) {
        /* convert to string and store*/
    }
}

template<template<typename, typename> class Container, class Allocator>
void ContainerWork(Container<std::string, Allocator> c)
{
    for(const std::string& elem : c) {
        /* frame elem in quotes*/
    }
}
Run Code Online (Sandbox Code Playgroud)

它的伟大工程,但现在我只能使用测序容器(vector …

c++ templates stl c++11

6
推荐指数
2
解决办法
345
查看次数

标签 统计

c++ ×1

c++11 ×1

stl ×1

templates ×1