gpt4 book ai didi

c++ - 为什么我不能用列表初始化来初始化 std::vector

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:25 31 4
gpt4 key购买 nike

为什么这行不通?

#include <vector>

struct A {
template <typename T> void f(const std::vector<T> &) {}
};

int main() {

A a;

a.f({ 1, 2, 3 });

}

最佳答案

可以初始化一个std::vector<T>与列表初始化。但是,您不能推断模板参数 T使用 std::vector<T>在参数列表中并向函数传递不是 std::vector<T> 的东西.例如,这有效:

#include <vector>

template <typename T>
struct A {
void f(const std::vector<T> &) {}
};

int main() {

A<int> a;

a.f({ 1, 2, 3 });

}

关于c++ - 为什么我不能用列表初始化来初始化 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087668/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com