vector can 解析扩展包
时间: 2023-09-11 14:09:08 浏览: 44
可以,C++11引入了可变参数模板(Variadic Templates)特性,可以实现可变数量参数的模板类和函数。使用可变参数模板,我们可以轻松地实现一个支持任意数量参数的 vector 类。具体实现方式可以参考以下代码:
```c++
#include <iostream>
#include <vector>
template <typename T, typename... Args>
std::vector<T> make_vector(Args&&... args) {
return std::vector<T>{std::forward<Args>(args)...};
}
int main() {
auto vec1 = make_vector<int>(1, 2, 3, 4, 5);
auto vec2 = make_vector<double>(1.0, 2.0, 3.0, 4.0, 5.0);
std::cout << "vec1: ";
for (auto i : vec1) {
std::cout << i << " ";
}
std::cout << "\nvec2: ";
for (auto i : vec2) {
std::cout << i << " ";
}
return 0;
}
```
输出:
```
vec1: 1 2 3 4 5
vec2: 1 2 3 4 5
```
在上述代码中,我们使用了可变参数模板实现了一个名为 `make_vector` 的函数模板。该函数接受任意数量的参数,并返回一个包含这些参数的 `std::vector` 对象。使用时,我们只需要指定 `T` 的类型,然后将需要添加到 vector 中的元素依次传入即可。