游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1326|回复: 4

vector's OP

[复制链接]

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
发表于 2005-5-25 15:12:00 | 显示全部楼层 |阅读模式
vector's OP

我想?h除c所有m_index等於2的元素,???一下要如何???

struct elem
{
public:
        int m_index;
        int m_number;
        elem(int _index,int _number)
        {
                m_index=_index;
                m_number=_number;
        }
};

void CTest0525Dlg::OnButton2()
{
        // TODO: Add your control notification handler code here
        std::vector<elem> c;
        c.push_back(elem(1,1));
        c.push_back(elem(2,2));
        c.push_back(elem(2,3));
        c.push_back(elem(3,4));
        c.push_back(elem(4,5));

        std::vector<elem>::iterator pos;

        //pos=std::find(c.begin(),c.end(),2);
        //c.erase(pos);
               
        for (pos=c.begin();pos!=c.end();++pos)
        {
                TRACE(">>>>index=%d,number%d\n",pos->m_index,pos->m_number);
        }

        TRACE(">>>> size=%d\n",c.size());       
}

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2005-5-25 18:57:00 | 显示全部楼层

Re:vector's OP

用std::map<int,elem>吧

当然也可以重载elem的 bool operator == (const int _index)

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2005-5-25 20:36:00 | 显示全部楼层

Re:vector's OP

void CTest0525Dlg::OnButton2()
{
        ...

        vector<elem>::iterator it;
       
        it = stable_partiton(c.begin(), c.end(), bind1st(not_equal_to<int>(), 2));

        c.erase(it, c.end());
}

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2005-5-25 20:39:00 | 显示全部楼层

Re:vector's OP

抱歉,写错了,没看到c是个结构,修改如下:

bool notEqualTo2(const elem &e)
{
        if(e.m_index == 2)
                return false;
        return true;
}

void CTest0525Dlg::OnButton2()
{
        ...

        vector<elem>::iterator it;

        it = stable_partiton(c.begin(), c.end(), notEqualTo2);

        c.erase(it, c.end());
}

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
 楼主| 发表于 2005-6-5 02:10:00 | 显示全部楼层

Re:vector's OP

?了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 21:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表