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

Passing a std::pair templated with two template arguments as a parameter

本文关键字:参数 std air 两个      更新时间:2023-10-16

我正在编写一个函数insertPairIntoVector,它将根据对中第二个元素的比较将std::p air插入到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>>) {
}

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

当两个">"字符彼此靠近时,它们之间需要一个空格,以便它不会被解释为">>"运算符。完成该更改后,原型将编译。

#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() {
}