定义
struct _clientDataPack
{
char client_addr[16];
int client_port;
int isclose;};
list<struct _clientDataPack> g_clientDataPack;struct _clientDataPack _clientDataPack_temp;
list<struct _clientDataPack>::iterator _clientDataPack_findIterator;我想找到后修改其中的值 ,但是编译不通过,
strcpy(_clientDataPack_temp.client_addr,"192.168.2.1");
_clientDataPack_temp.client_port=6500;
_clientDataPack_temp.isclose=0;
_clientDataPack_findIterator=find(g_clientDataPack.begin(), g_clientDataPack.end(),
_clientDataPack_temp);
if( _clientDataPack_findIterator!=g_clientDataPack.end())
{
_clientDataPack_find.isclose=1;;
}
该怎么查和修改原来的值
struct _clientDataPack
{
char client_addr[16];
int client_port;
int isclose;};
list<struct _clientDataPack> g_clientDataPack;struct _clientDataPack _clientDataPack_temp;
list<struct _clientDataPack>::iterator _clientDataPack_findIterator;我想找到后修改其中的值 ,但是编译不通过,
strcpy(_clientDataPack_temp.client_addr,"192.168.2.1");
_clientDataPack_temp.client_port=6500;
_clientDataPack_temp.isclose=0;
_clientDataPack_findIterator=find(g_clientDataPack.begin(), g_clientDataPack.end(),
_clientDataPack_temp);
if( _clientDataPack_findIterator!=g_clientDataPack.end())
{
_clientDataPack_find.isclose=1;;
}
该怎么查和修改原来的值
解决方案 »
- CMonthcalctrl的应用问题
- smtp发信的奇怪问题?
- 要对对话框进行初始化,怎么调哦?
- 【求助】一个奇怪的问题 ———— 直接 Run 和 Debug 结果不一样是怎么回事?
- 什么叫初始化参数列表?
- 怎样在程序中检测按下shift的同时按了其他键
- 为什么我用vc写的控件不能注册?
- CreateProcess的问题
- VC6.0里那个Component and Controls Gallery在.net里怎么没了?
- __declspec 這個關鍵字的英文原型是什麼?怪怪的,總是記不得。還有 dllimport 與 dllexport 是什麼不一樣
- 用vc写的局域网语音聊天程序如何解决延时问题!高手指点 江湖救急!!
- 问几个编程的基本问题。
2. 不能使用std::find()函数,应该使用
std::find_if(InputIterator first,InputIterator last, Predicate pred)
不然是找不到东西的。
3. predicate的定义有点复杂,我也正在学习.
#include <list>
#include <algorithm>
using namespace std;
struct _clientDataPack
{
char client_addr[16];
int client_port;
int isclose;
bool operator==(const _clientDataPack& obj)
{
return obj.isclose==this->isclose&&obj.client_port==this->client_port&& strcmp(obj.client_addr,this->client_addr)==0;
}
};
typedef list< _clientDataPack> MyList;
int _tmain(int argc, _TCHAR* argv[])
{
MyList g_clientDataPack;
_clientDataPack _clientDataPack_temp;
strcpy(_clientDataPack_temp.client_addr,"192.168.2.1");
_clientDataPack_temp.client_port=6500;
_clientDataPack_temp.isclose=0;
MyList::iterator _clientDataPack_findIterator=find<MyList::iterator, _clientDataPack>(g_clientDataPack.begin(), g_clientDataPack.end(),
_clientDataPack_temp);
if( _clientDataPack_findIterator!=g_clientDataPack.end())
{
_clientDataPack_findIterator->isclose=1;;
} return 0;