我有一段代码如下:
#include<algorithm>
#include<vector>
std::vector<std::string> vect;
std::vector<std::string> * vectP;
vect.push_back("ele0");
vect.push_back("ele1");
void func(){
if(std::find(*vectP.begin(),*vecP.end(),"ele0")!=*vectP.end())
//'begin' and 'end' have not been declared
}
为什么将
begin
和end
与指针一起使用时未声明?由于已将*vectP
取消引用,因此应将其视为vect
,否则我是否误解了?我该如何纠正? 最佳答案
您将运算符的优先级弄错了。 *vectP.begin()
的意思是*(vectP.begin())
(当然不起作用),而不是(*vectP).begin()
,这就是您的意思。但是您可能应该拼写该vectP->begin()
。
关于c++ - 与指针一起使用时未声明“开始”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50091145/