Re: STL list Problems
On 2 Mrz., 14:57, mrc2...@cox.net (Mike Copeland) wrote:
Here is how I've changed the code, but still I cannot get it to
compile:
#pragma warning (disable:4786)
Eew! What's that for? :-p
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
struct test
{
int key;
int count;
string str;
bool operator==(const test &rhs)
{
return rhs.key == key;
}
} tWork;
Stay away from global (namespace scope) variables -- in this case:
tWork.
list<test> L;
list<test>::iterator qq;
see above
int main(void)
{
char str[100];
for (int ii = 1; ii <= 10; ii++)
{
tWork.count = 0, tWork.key = ii;
sprintf(str, "Test string #%d", ii);
Avoid the C part of the languange when there are better C++
alternatives. Working with bare naked character arrays is usually
more error-prone than dealing with std::string objects (memory leaks,
heap corruption, buffer overflow, ...)
tWork.str = str;
L.push_back(tWork);
} // for
int jj = 5;
qq = find(L.begin(), L.end(), jj); <== error here
"jj" is of type "int". You didn't supply an operator== which accepts
an object of type "test" on one side and an object of type "int" on
the other side.
The compiler generates the error (C2679 in VS6.0) stating that I h=
ave
no == comparison operator.
I'm not familiar with the error messages of VS6.0. But g++ would have
told you what kind of operator== function your program lacks.
Cheers!
SG