首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

相关容器的find函数

2013-08-09 
有关容器的find函数本帖最后由 softpart 于 2013-08-02 18:13:01 编辑假设我定义了一个类class person{pri

有关容器的find函数
本帖最后由 softpart 于 2013-08-02 18:13:01 编辑 假设我定义了一个类


class person
{
private:
string pName;
int pAge;
string pGroup;
...
};


然后使用到了list或者vector容器,例如:

list<person> lst;
.....

那么有办法可以使用find函数在lst容器中寻找pName关键字的迭代器吗?或者可以使用其他什么简便办法呢? 类 Iterator
[解决办法]
参考http://blog.csdn.net/zhoukuo1981/article/details/3452202
[解决办法]
class person{}重载 == 操作符,就可以了

vector<person> vec;
person p;
p.pName = "csdn";
vector<person>::const_iteraor it = find(vec.begin, vec.endg, p)
it != vec.end();判断
[解决办法]
简单的话用 find_if
[解决办法]
新人表示看不懂这里面的因果关系……

引用:
Quote: 引用:

class person{}重载 == 操作符,就可以了

vector<person> vec;
person p;
p.pName = "csdn";
vector<person>::const_iteraor it = find(vec.begin, vec.endg, p)
it != vec.end();判断


我试了一下,但是有点问题:

class person
{
private://私有
    string pName;
    int pAge;
    string pGroup;
...
public:
bool operator==(const person &n) const
{
return (pName == n.pName);
}
};
bool person::operator==(const person &n) const
{
return (pName == n.pName);
}

但是假设在main函数中:


person p;
p.pName = "CSDN";


这里会提示pName为私有,这个如何操作?

[解决办法]
类当中的私有成员,如果是在外面需要操作,要实现相应的读写成员函数提供给用户的。


这是类最基础的概念啊。
还是先学好基础的吧,再学stl

热点排行