在C 中返回两个值对
Returning two values pair in c++
我对此有问题。CodeBlocks错误:无法将" std :: pair"转换为'int'以回报|我无法在功能中返回两个值。我怎样才能做到这一点?我也尝试构建结构,但同样的错误...
代码:
int wyszukanieKR(char **tablica, char **wzorzec)
{
pair <int, int> wspolrzedne;
int hash_wzorzec = _hash(0, 0, 9, 3, wzorzec);
int hash_tablica = 0;
for(int i = 0; i < 84-9; i++)
{
for(int j = 0; j < 13-3; j++)
{
hash_tablica = _hash(i, j, 9, 3, tablica);
if(hash_wzorzec == hash_tablica)
{
bool znalazlem = false;
for (int k = 0; k < 9; k++)
{
for (int l = 0; l < 3; l++)
{
if (tablica[k+wspolrzedne.first][l+wspolrzedne.second] != wzorzec[k][l])
break;
if(k ==9 - 1 && l == 3 - 1)
znalazlem = true;
}
}
if(znalazlem)
{
//cout<<"["<<wspolrzedne.first<<"]"<<"["<<wspolrzedne.second<<"]";
//return wspolrzedne;
}
licznik = licznik+1;
}
wspolrzedne.first++;
}
wspolrzedne.first = 0;
wspolrzedne.second++;
}
//cout<<"["<<wspolrzedne.first<<"]"<<"["<<wspolrzedne.second<<"]";
return wspolrzedne;
您的问题不是您不能返回两个项目,而是您的返回与您的函数声明不符。您将其声明为int
,但然后尝试返回pair<int,int>
。这些不是相同的,因此当编译器试图返回一个时,它与另一个不匹配,并给您错误。您需要做的是选择要返回的价值或将声明更改为
std::pair<int, int> wyszukanieKR(char **tablica, char **wzorzec)
您的总功能应该看起来像:
std::pair<int, int> wyszukanieKR(char **tablica, char **wzorzec)
{
// Function Body
return wspolrzedne; //pair<int, int>
}
请参阅此:
std::pair<int, int> wyszukanieKR(char **tablica, char **wzorzec)
{
/* analysis */
return std::make_pair<int,int>(pozycja_x,pozycja_y);
}
在主要您可以使用:
std::pair<int,int> result = wyszukanieKR(...);
std::cout << result.first << " " <<result.second << "n";
相关文章:
- 如何返回一个类的两个对象相加的结果
- 从两个窗口返回前景窗口
- 如何创建两个具有相同名称和不同返回类型并基于布尔参数运行的函数
- 返回两个向量 – 使用引用还是元组?
- 函数返回两个字符串的第一个常用字符
- 我有一个返回字符串向量的函数.它需要两个字符串,并且返回一个字符串中缺少的字符串
- 在函数中连接两个字符,并在 C++ 中返回输出
- C++函数返回两个 char 数组的相同索引元素
- 两个相同的重载运算符[]一个返回引用
- 为什么同一个逻辑方程在python和c++中返回两个不同的结果
- 在C++中将返回unique_ptr和shared_ptr的两个工厂方法组合为一个
- 从两个 lambda 的函数返回 lambda 时的链接器错误
- 如何通过返回类型区分两个 lambda 函数?
- C++ 超载 += 用于两个袋子的合并,返回类型为空隙
- 如何拥有两个名称相同但返回类型不同的纯虚拟方法
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 给定一个偶数(大于2),返回两个素数,其总和等于给定数
- 在C 中返回两个值对
- 两个返回相同值的 Arduino 类实例
- 为什么我在这里得到两个返回值