读书人

简单的增删改查。list

发布时间: 2013-07-16 22:38:05 作者: rapoo

求一个简单的增删改查。。。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;
}

读书人网 >C++

热点推荐