打印任意类型vector函数
时间: 2023-08-14 15:07:18 浏览: 126
Vector创建二维数组.zip
下面是一个打印任意类型vector的函数示例:
```c++
#include <iostream>
#include <vector>
#include <type_traits>
template<typename T>
void print_vector(const std::vector<T>& vec)
{
static_assert(std::is_arithmetic_v<T> || std::is_same_v<T, std::string>, "Type not supported!");
std::cout << "[";
for (auto it = vec.begin(); it != vec.end(); ++it)
{
if (it != vec.begin())
std::cout << ", ";
std::cout << *it;
}
std::cout << "]" << std::endl;
}
int main()
{
std::vector<int> vec1 = { 1, 2, 3, 4, 5 };
std::vector<double> vec2 = { 1.0, 2.0, 3.0, 4.0, 5.0 };
std::vector<std::string> vec3 = { "hello", "world" };
print_vector(vec1); // Output: [1, 2, 3, 4, 5]
print_vector(vec2); // Output: [1, 2, 3, 4, 5]
print_vector(vec3); // Output: [hello, world]
// This will fail to compile because std::complex is not an arithmetic type
// std::vector<std::complex<double>> vec4 = { {1.0, 2.0}, {3.0, 4.0} };
// print_vector(vec4);
return 0;
}
```
该函数使用了模板元编程技术,通过 `std::is_arithmetic_v` 和 `std::is_same_v` 来限制支持的类型。如果传入的类型不是算术类型或字符串类型,则会收到编译错误。
阅读全文