C++ 对象指针赋值的指针向量的一个元素

C++ 对象指针赋值的指针向量的一个元素,c++,object,pointers,vector,variable-assignment,C++,Object,Pointers,Vector,Variable Assignment,我无法将对象指针的指针向量的元素分配给对象指针。我在Linux上使用EclipseIDE。如果你想看看我的问题: void Parse::parseDatalogProgram(vector<Token*>* tokens) { Token* currentToken = tokens[0]; ... } void Parse::parseDatalogProgram(向量*令牌) { 令牌*currentToken=令牌[0]; ... } 我收到一个语法错误,说“无法

我无法将对象指针的指针向量的元素分配给对象指针。我在Linux上使用EclipseIDE。如果你想看看我的问题:

void Parse::parseDatalogProgram(vector<Token*>* tokens)
{
    Token* currentToken = tokens[0];
...
}
void Parse::parseDatalogProgram(向量*令牌)
{
令牌*currentToken=令牌[0];
...
}

我收到一个语法错误,说“无法在初始化时将'std::vector'转换为'Token*”,尽管上面看起来不是这样,但如何正确地解决这个问题?

tokens
是一个指针,而不是
向量本身。你能行

tokens->operator[](0);


tokens
是指针,而不是
向量本身。你能行

tokens->operator[](0);

确保令牌不为null。你为什么不传一封推荐信呢


确保令牌不为null。您为什么不传递一个引用呢?

标记
是指向向量的指针,而不是对象或引用。C++方式将函数原型转换为:

void Parse::parseDatalogProgram(const vector<Token*>& tokens){...}
void Parse::parseDatalogProgram(const向量和令牌){…}

如果不可能,您可以在使用指针之前简单地取消引用它:
Token*currentToken=(*tokens)[0]
tokens
是指向向量的指针,而不是对象或引用。C++方式将函数原型转换为:

void Parse::parseDatalogProgram(const vector<Token*>& tokens){...}
void Parse::parseDatalogProgram(const向量和令牌){…}
如果这是不可能的,您可以在使用指针之前简单地取消对它的引用:
Token*currentToken=(*tokens)[0]