求一个简单的增删改查。。。list
#define MAX 64
typedef struct NODE
{
char uuid[MAX];
int* host;
}NODE;
int main ()
{
//list<int> mylist;
//list<int>::iterator it;
list<NODE> mynode;
list<NODE>::iterator iter;
[解决办法]
用set或multiset
#define MAX 64
struct NODE
{
char uuid[MAX];
int* host;
};
bool operator < ( Node const & left, Node const & right )
{
return memcmp( left.uuid, right.uuid, MAX ) < 0;
}
int main ()
{
//list<int> mylist;
//list<int>::iterator it;
set<NODE> mynode;
set<NODE>::iterator iter;
[解决办法]
查找:
#include <set>
#include <iostream>
using namespace std ;
typedef set<int> SET_INT;
int main() {
SET_INT s1;
SET_INT::iterator i;
cout << "s1.insert(5)" << endl;
s1.insert(5);
cout << "s1.insert(10)" << endl;
s1.insert(10);
cout << "s1.insert(15)" << endl;
s1.insert(15);
cout << "s1.insert(20)" << endl;
s1.insert(20);
cout << "s1.insert(25)" << endl;
s1.insert(25);
cout << "s1 -- starting at s1.lower_bound(12)" << endl;
// prints: 15,20,25
for (i=s1.lower_bound(12);i!=s1.end();i++)
cout << "s1 has " << *i << " in its set." << endl;
cout << "s1 -- starting at s1.lower_bound(15)" << endl;
// prints: 15,20,25
for (i=s1.lower_bound(15);i!=s1.end();i++)
cout << "s1 has " << *i << " in its set." << endl;
cout << "s1 -- starting at s1.upper_bound(12)" << endl;
// prints: 15,20,25
for (i=s1.upper_bound(12);i!=s1.end();i++)
cout << "s1 has " << *i << " in its set." << endl;
cout << "s1 -- starting at s1.upper_bound(15)" << endl;
// prints: 20,25
for (i=s1.upper_bound(15);i!=s1.end();i++)
cout << "s1 has " << *i << " in its set." << endl;
cout << "s1 -- s1.equal_range(12)" << endl;
// does not print anything
for (i=s1.equal_range(12).first;i!=s1.equal_range(12).second;i++)
cout << "s1 has " << *i << " in its set." << endl;
cout << "s1 -- s1.equal_range(15)" << endl;
// prints: 15
for (i=s1.equal_range(15).first;i!=s1.equal_range(15).second;i++)
cout << "s1 has " << *i << " in its set." << endl;
}
遍历:
#include <set>
#include <iostream>
using namespace std ;
typedef set<int> SET_INT;
int main() {
SET_INT s1;
SET_INT s2;
SET_INT::iterator i;
cout << "s1.insert(5)" << endl;
s1.insert(5);
cout << "s1.insert(10)" << endl;
s1.insert(10);
cout << "s1.insert(15)" << endl;
s1.insert(15);
cout << "s2.insert(2)" << endl;
s2.insert(2);
cout << "s2.insert(4)" << endl;
s2.insert(4);
cout << "swap(s1,s2)" << endl;
swap(s1,s2);
// Displays: 2,4
for (i=s1.begin();i!=s1.end();i++)
cout << "s1 has " << *i << " in its set." << endl;
// Displays: 5,10,15
for (i=s2.begin();i!=s2.end();i++)
cout << "s2 has " << *i << " in its set." << endl;
cout << "s1.swap(s2)" << endl;
s1.swap(s2);
// Displays: 5,10,15
for (i=s1.begin();i!=s1.end();i++)
cout << "s1 has " << *i << " in its set." << endl;
// Displays: 2,4
for (i=s2.begin();i!=s2.end();i++)
cout << "s2 has " << *i << " in its set." << endl;
}