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

取出若干元素,满足指定要求的元素一定被取出,该如何解决

2012-02-13 
取出若干元素,满足指定要求的元素一定被取出C/C++ codeclass Sample{public:string m_szaddress intm_iag

取出若干元素,满足指定要求的元素一定被取出

C/C++ code
class Sample{public:    string m_szaddress ;    int    m_iage ;};    vector<Sample> SampleVector ;    Sample Sample1;    Sample1.m_iage = 10 ;    Sample1.m_szaddress = "北京朝阳区" ;    SampleVector.push_back(Sample1) ;    Sample Sample2;    Sample2.m_iage = 20 ;    Sample2.m_szaddress = "北京" ;    SampleVector.push_back(Sample2);        Sample Sample3;    Sample3.m_iage = 30 ;    Sample3.m_szaddress = "天津" ;    SampleVector.push_back(Sample3);    Sample Sample4;    Sample4.m_iage = 40 ;    Sample4.m_szaddress = "四川成都" ;    SampleVector.push_back(Sample4);    Sample Sample5;    Sample5.m_iage = 50 ;    Sample5.m_szaddress = "四川重庆" ;    SampleVector.push_back(Sample5);   //...

在SampleVector中取出n个元素,这些元素m_szaddress满足条件:比如含“北京”或者“天津”。
若满足条件的个数m大于n,则任意n个满足条件的元素被取出。
若满足条件的个数m小于或者等于n,则满足条件的m个元素都被取出,其余 n-m个元素为一些不满足条件的其它元素

[解决办法]
写个循环判断一下,记录下数量不就可以了
[解决办法]
使用算法find_if,定义谓词。
[解决办法]
find
[解决办法]
可以用map实现,以条件为键值,值为一个vector对象,map<string,vector<int>>。根据条件遍历SampleVector,把满足条件的记录的下标存入vector对象中。这样就可以得到满足条件的记录,随机取记录也很方便做到

热点排行
Bad Request.