You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++向vector push_back pair时报“(前缺少模板参数”错误如何解决?

问题原因

该报错是由于C++17之前的标准不支持std::pair的类模板实参推导,你直接写pair(a, b)时,编译器无法自动推导出你要构造的pair实例的模板参数类型,因此提示缺少模板参数。

修复方案

有三种常用的修复方式:

  • 显式指定pair的模板参数:将两处pair(a, b)、pair(c, d)分别修改为pair<int, int>(a, b)、pair<int, int>(c, d)即可。
  • 使用std::make_pair工具函数:它会自动根据传入参数的类型推导pair的模板参数,兼容所有C++标准版本,只需要将两处代码修改为make_pair(a, b)、make_pair(c, d)即可。
  • 开启C17及更高版本的编译支持:如果你的编译器支持C17,可以在编译时添加对应编译参数(GCC/Clang添加-std=c++17,MSVC添加/std:c++17),原有代码不需要修改即可正常编译。
修复后完整代码示例
#include <iostream>
#include <vector>
#include <utility>

using namespace std;

int main()
{
    int x, y, a, b, c, d, j, m, v;
    vector<pair<int, int> > ladder;
    cin >> x >> y;
    for (int i = 0; i < x; i++) {
        cin >> a >> b;
        ladder.push_back(make_pair(a, b));
    }
    vector<pair<int, int> > snake;
    for (int i = 0; i < y; i++) {
        cin >> c >> d;
        snake.push_back(make_pair(c, d));
    }
    vector<int> moves;
    cin >> v;
    while (v != 0) {
        moves.push_back(v);
        v = 0;
        cin >> v;
    }
    return 0;
}

内容的提问来源于stack exchange,提问作者user13869329

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:24:00