STL 容器操作

void RemoveAll(){    
        cout << "delete :" << "  Pointer:"<< (this)<<  "--"<< this->name.c_str()  << endl;

           //TRACE("delete  %s\n" , this->name);
    
        vector<Component*>::iterator ite = v.begin();
        while (ite != v.end())
        {
            if (*ite != NULL)
            {

               ((Component*)(*ite))->RemoveAll();                
                delete *ite;
                *ite = NULL;
            }
            v.erase(ite);
            ite = v.begin();
        }     


#include <iostream>
#include <string>
#include <vector>
#include <set>

#include <list>

using namespace std;


/** * 程序执行的入口点。 */
int main()
{
    // 在标准输出中打印 "Hello, world!"
    // std::cout << "Hello, world!" << std::endl;
    cout << "Hello, world!" << endl;
    cout << to_string(56) << endl;

    //计划做一下vector的输入输出
    vector<int> v;

    v.push_back(34);
    v.push_back(35);

    cout << v.size() << endl;

    vector<int>::iterator it = v.begin();
    while (it != v.end())
    {
        cout << *it << endl;
        it++;
    }

    while (!v.empty())
    {
        v.erase(v.begin());
    }

for (vector<int>::iterator it = v.begin(); it != v.end();) {
    if (*it == 2) {
        it = v.erase(it);
    } else {
        ++it;
    }
}

///

vector<Component*> m_vecComp;

//释放内存   

 ~Composite()
    {
        vector<Component*>::iterator ite = m_vecComp.begin();
        while(ite != m_vecComp.end())
        {
            if(*ite != NULL)
            {
                cout<<"delete"<<(*ite)->GetName()<<endl;
                delete *ite;
                *ite = NULL;
            }
            m_vecComp.erase(ite);
            ite = m_vecComp.begin();
        }
    }

void Remove(Component* pComponent)
    {
        vector<Component*>:: iterator ite ;
        for(ite = m_vecComp.begin(); ite != m_vecComp.end(); ite++ ){
            if((*ite)->GetName() == pComponent->GetName())
            {
                if(*ite != NULL)
                {
                    delete *ite;
                    *ite = NULL;
                }
                m_vecComp.erase(ite);
                break;
            }
        }

    }

//


//测试查找后移除表中的元素 
void remove( float xy ,float z)
{          
      for(vector<Vector3*>::iterator it = vN.begin() ; 
      it != vN.end() ; ++it)
      {
        if((*it)->x == xy && (*it)->z == z)
        {            
                delete (*it);            
                (*it) = NULL;                
                vN.erase(it);
                break;                        
        }                      
      }    
}

///

    cout << v.size() << endl;

    int a[3] = {3, -2, 12};
    int b[3] = {2, 1, 1};

    int k = (b[0] / a[0]);

    int c1 = b[1] - k * a[1];

    cout << c1 << endl;

    //计划做一下set的输入输出
    set<int> s;
    s.insert(25);
    s.insert(28);
    s.insert(20);

    set<int>::iterator sit;
    sit = s.begin();
    while (sit != s.end())
    {
        cout << *sit << endl;
        ++sit;
    }

    //取得第一个数值
    int s1 = *(s.begin());
    cout << s1 << endl;

    //取得最后一个数值
    int e1 = *(--s.end());
    cout << e1 << endl;

    //删除清空
    while (!s.empty())
    {
        s.erase(s.begin());
    }
    s.clear();

    //计划做一下list的输入输出
    list<int> l;

    l.push_back(5);
    l.push_back(8);

    list<int>::iterator lit = l.begin();
    while (lit != l.end())
    {
        cout << *lit << endl;
        lit++;
    }
    while (!l.empty())
    {
        l.erase(l.begin());
    }

    cout << "all ok !..." << endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值