首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法推导模板参数

无法推导模板参数
EN

Stack Overflow用户
提问于 2011-05-03 09:30:14
回答 1查看 300关注 0票数 1

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

代码语言:javascript
复制
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为我提供了:

代码语言:javascript
复制
'_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>
          ]

那么为什么不能推导出模板参数呢?我该如何修复它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-03 09:38:31

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

有关于这个问题的讨论here,以及使用VC10支持的C++0xλ表达式的变通方法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5864171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档