Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这里调用push_的匹配函数指的是什么?_C++_Algorithm_Data Structures - Fatal编程技术网

C++ 这里调用push_的匹配函数指的是什么?

C++ 这里调用push_的匹配函数指的是什么?,c++,algorithm,data-structures,C++,Algorithm,Data Structures,当我运行两行以上的代码时,它运行得很好 但当我将上面两行代码更改为: result.push_back(i-num.data()); result.push_back(vec2-num.data()); 它显示了一个错误,即没有匹配的成员函数来调用push_back。 这不是都显示了向量的位置吗? 我的直觉是把i和vec2的位置值推回到向量结果。 这也是我对第一个两和leetcode问题的回答。 伙计们,请在这一点上帮助我,我发现很难区分以上4行。 提前谢谢,抱歉占用您的时间 vector

当我运行两行以上的代码时,它运行得很好

但当我将上面两行代码更改为:

result.push_back(i-num.data());
result.push_back(vec2-num.data());

它显示了一个错误,即没有匹配的成员函数来调用push_back。 这不是都显示了向量的位置吗? 我的直觉是把i和vec2的位置值推回到向量结果。 这也是我对第一个两和leetcode问题的回答。 伙计们,请在这一点上帮助我,我发现很难区分以上4行。 提前谢谢,抱歉占用您的时间

vector data()
属于
int*
类型,请参见,您使用
auto
从中声明
i
,因此它也是
int*

result.push_back(i-num.data())
正在执行两个指针的差异,这很好

结果。推回(i)
正在做一些奇怪的事情(尝试将int指针插入int向量)。如果需要元素的索引,指针差就是正确的方法。

vector data()
的类型是
int*
请参见,您使用了
auto
来声明
i
,因此它也是
int*

result.push_back(i-num.data())
正在执行两个指针的差异,这很好


结果。推回(i)
正在做一些奇怪的事情(尝试将int指针插入int向量)。如果需要元素的索引,指针差异是正确的方法。

建议:在声明它们时使用实际类型的
i
vec2
,而不是
auto
。这将使编译器不将它们视为
int
的原因变得更为明显。这是有道理的,感谢您的建议:在声明它们时使用
i
vec2
的实际类型,而不是
auto
。这将使编译器不将它们视为
int
的原因变得更加明显。这是有道理的,谢谢mandude,谢谢老兄!这就够了,谢谢你的时间,兄弟,谢谢你!这就足够了,谢谢你的时间,兄弟。
result.push_back(i-num.data());
result.push_back(vec2-num.data());

result.push_back(i);
result.push_back(vec2);