在C++函数中接收deque或vector作为通用参数

问题描述:

如何编写接收deque或vector的打印函数并将内容打印到控制台中?在C++函数中接收deque或vector作为通用参数

void print(generalparameter for deque and vector){ 
    // print the content of the received deque/ vector. 
} 

您可以使用模板功能:

template<typename T> 
void print(const T& container){ 
    for(auto item : container) { 
     std::cout << item << ' '; 
    } 
    std::cout << std::endl; 
} 

你可以写一个通用的函数模板:

template <typename Container> 
void print(Container const& c) { 
    for (auto const& elem : c) { 
     std::cout << elem << ' '; 
    } 
    std::cout << '\n'; 
} 

附:如果你真的想限制它到只有vectordeque你可以在函数体内使用类似static_assert的东西,但我不确定这个限制是否真的有意义。