与指针一起使用时,未声明'begin'

时间:2018-04-29 20:47:56

标签: c++ pointers vector iterator stl-algorithm

我有一段代码如下:

#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
}

为什么beginend在与指针一起使用时未声明? *vectP应被视为vect,因为它被解除引用,或者我误解了某些内容?我该如何纠正这个问题?

1 个答案:

答案 0 :(得分:6)

您的运营商优先权错误。 conn = MySQLdb.connect ( host = "host.domaincommysql.com", user = "usernamefromdb", passwd = "password", db = "dbfromhost") orders_sql = pd.DataFrame(pd.read_sql("SELECT* FROM orders", con=conn))['Date'] 表示*vectP.begin()(当然不起作用),而不是*(vectP.begin()),这就是您的意思。但你应该拼写(*vectP).begin()