传递带有两个模板参数的std :: pair模板作为参数

时间:2016-01-27 00:29:32

标签: c++ templates c++11

我正在编写一个函数insertPairIntoVector,它将根据对中第二个元素的比较将std :: pair插入到std :: vector中。我的原型看起来像这样:

template <typename T, typename Q>
std::vector<std::pair<T, Q>> sortPairIntoVector(
    std::pair<T,Q>, std::vector<std::pair<T, Q>>);

我的函数定义如下所示:

template <typename T, typename Q>
std::vector<std::pair<T, Q>> sortPairIntoVector(
    std::pair<T, Q>, std::vector<std::pair<T, Q>>) {

}

但我仍然遇到大量关于模板的模棱两可的错误。关于我做错了什么的任何帮助? 谢谢!

1 个答案:

答案 0 :(得分:-5)

当两个“&gt;”字符彼此靠近,它们之间需要一个空格,以便它不被解释为“&gt;&gt;”运营商。完成更改后,原型编译。

#include <iostream>
#include <vector>
#include <iostream>

template <typename T, typename Q>
std::vector<std::pair<T, Q> > sortPairIntoVector(
    std::pair<T,Q>, std::vector<std::pair<T, Q> >);
template <typename T, typename Q>
std::vector<std::pair<T, Q> > sortPairIntoVector(
    std::pair<T, Q>, std::vector<std::pair<T, Q> >) {

}

int main() {
}