gpt4 book ai didi

c++ - 无法推导模板参数

转载 作者:行者123 更新时间:2023-11-30 01:29:28 25 4
gpt4 key购买 nike

我正在尝试使用 std::transform 将两个大小相等的 vector 合并成一个 vector 对。

int main()
{
vector<string> names;
// fill it with names
vector<int> nums;
// fill it with numbers

typedef pair<int,string> Pair_t;
vector<Pair_t> pv;

transform(nums.begin(), nums.end(),
names.begin(), back_inserter(pv),
make_pair<int,string>);
}

VC10 给我:

'_OutIt std::transform(_InIt1,_InIt1,_InIt2,_OutIt,_Fn2)' : could not deduce template argument for '_OutIt' from 'std::back_insert_iterator<_Container>'
with
[
_Container=std::vector<Pair_t>
]

那么为什么不能推导模板参数呢?我该如何解决?

最佳答案

这是由于当前版本的 VC10 中存在错误,无法正确解析 make_pair 的重载。

有一个关于这个确切问题的讨论here ,以及使用 VC10 支持的 C++0x lambda 表达式的解决方法。

关于c++ - 无法推导模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5864171/

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