【发布时间】:2013-04-09 10:40:26
【问题描述】:
我遇到了一个奇怪的问题,编译器突出显示“=”和“!=”作为错误,声称没有匹配的操作数,但我不知道如何。这是我的代码:
#pragma once
#include "Console.h"
#include "RandomNumber.h"
#include "Element.h"
#include "Flotsam.h"
#include "vector"
#include <list>
#include <iostream>
using namespace std;
#define NUMBER 10
int main()
{
Console console;
RandomNumber rnd;
vector<Element*> flotsam;
for(int i = 0; i < NUMBER; i++)
{
flotsam.push_back(new Element(rnd, console));
}
vector<Element>::iterator ptr;
ptr = flotsam.begin();
while(ptr!=flotsam.end())
{
ptr->printAt();
ptr++;
}
Sleep(1000);
console.clear();
}
【问题讨论】:
-
vector<Element*>vsvector<Element> -
我应该提到,唯一突出显示的“=”和“!=”运算符位于“ptr”之后
-
好的,我从vector
中删除了指针,现在是“.”在 flotsam.pushback 处给出错误 -
您需要添加指向迭代器声明的指针,或者如果您可以使用 C++11,只需使用
auto关键字。auto ptr = flotsam.begin().
标签: c++ vector operator-keyword operand