| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 378 人关注过本帖, 1 人收藏
标题:C++STL中的search_n函数应用于结构体出现问题
只看楼主 加入收藏
yoghurtjia
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-3-8
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:1 
C++STL中的search_n函数应用于结构体出现问题
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
struct student{
    int    no;
    string name;
};

int main()
{
    vector<student>coll;
    student test;
    test.no   = 200;
    test.name = "jia";
    coll.reserve(80);
    int n;
    cin >> n;
    coll.resize(n);
    for (int i = 0; i < n; ++i)
    {
        cin >> coll[i].no >> coll[i].name;
    }
    vector<student>::iterator pos;
    //pos = search_n(coll.begin(),coll.end(),3,coll[1]);  受挫与结构体,结构体怎么使用呢。  

    return 0;
}


以上是我自己写的stl中的search_n函数,search__n函数是用来寻找一段区间中连续的n个等于定值的位置,在整形数组中没有问题,在结构体中失效了,希望大家来探讨一下
搜索更多相关主题的帖子: 结构体 include 
2014-03-08 22:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
你总得告诉search_n,两个student怎样才算是相等呀? 我来举个例子吧
程序代码:
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cassert>

struct student {
    int    no;
    std::string name;

    student( int id, const char* nm ) : no(id), name(nm)
    {
    }
};

using namespace std;

bool student_comp_1( const student& a, const student& b ) // 如果 no 相同,就认为student相等
{
    return a.no == b.no;
}
bool student_comp_2( const student& a, const student& b ) // 如果 name 相同,就认为student相等
{
    return a.name == b.name;
}

int main()
{
    vector<student> coll;
    coll.reserve( 5 );
    coll.push_back( student(0,"a") );
    coll.push_back( student(0,"b") );
    coll.push_back( student(1,"b") );

    vector<student>::iterator itor1 = search_n( coll.begin(), coll.end(), 2, student(0,"x"), &student_comp_1 );
    assert( itor1 == coll.begin()+0 );

    vector<student>::iterator itor2 = search_n( coll.begin(), coll.end(), 2, student(0,"b"), &student_comp_2 );
    assert( itor2 == coll.begin()+1 );

    return 0;
}

2014-03-10 08:57
快速回复:C++STL中的search_n函数应用于结构体出现问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027669 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved