如何将 vector<pair<int, int>> 传递给函数?

新手上路,请多包涵

如果我尝试将函数声明为 void some_function(vector<pair<int, int> > theVector) ,我会收到一个错误(可能来自“ pair<int 之后的逗号。”关于如何将这个向量与对传递给函数的任何想法?

 #include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>

void someFunc(int x, int y, vector<pair<int, int> > hello);

int main()
{
    int x = 0;
    int y = 5;

    vector<pair<int, int> > helloWorld;
    helloWorld.push_back(make_pair(1,2));

    someFunc(x,y,helloWorld);
}

void someFunc(int x, int y, vector<pair<int, int> > hello)
{
    cout << "I made it." << endl;
}

错误:“向量”尚未声明

原文由 Bob John 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 594
1 个回答

您需要为 vector、pair、make_par 提供完整的命名空间,它们来自 std 命名空间:

 void someFunc(int x, int y, std::vector<std::pair<int, int> > hello);

int main()
{
    int x = 0;
    int y = 5;

    std::vector<std::pair<int, int> > helloWorld;
    helloWorld.push_back(std::make_pair(1,2));

    someFunc(x,y,helloWorld);
    return 0;
}

void someFunc(int x, int y, std::vector<std::pair<int, int> > hello)
{
    std::cout << "I made it." << std::endl;
}

旁注:您可以通过引用将向量传递给 someFunc,这将省略不必要的复制:

  void someFunc(int x, int y, const std::vector<std::pair<int, int> >& hello);
                              ^^^                                   ^^

原文由 billz 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题