• C++学习之STL容器vector


    学习知识点

    vector容器的添加、删除,遍历操作。

    练习代码

    // IPCT.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include <vector>
    #include <shlwapi.h>
    #pragma comment(lib,"shlwapi.lib")
    using namespace std;

    BOOL find(char *ip);
    class MoveHotel
    {
    public:
    char ip[16];
    char mac[18];
    char mark[100];
    MoveHotel(char _ip[],char _mac[],char _mark[])
    {
    //ip=_ip;
    //mac=_mac;
    //mark=_mark;
    strcpy(ip,_ip);
    strcpy(mac,_mac);
    strcpy(mark,_mark);
    }
    };
    vector<MoveHotel *> hostlist;
    int _tmain(int argc, _TCHAR* argv[])
    {

    FILE *fp;
    fp=fopen("d:\\mac.txt","r");
    if (!fp)
    {
    return 0;
    }
    while(!feof(fp))
    {
    char ip[16],mac[18],info[100];
    fscanf(fp,"IP:%s\tMAC:%s\t备注:%s\n",ip,mac,info);
    printf("正在插入——%s\n",ip);
    hostlist.push_back(new MoveHotel(ip,mac,info));
    }
    printf("完成!\n");
    fclose(fp);

    while (1)
    {
    char read[20];
    scanf("%s",&read);
    if(StrCmp(read,"exit")==0)
    {
    break;
    }
    else
    {
    if (find(read))
    {
    printf("查找完成!\n");
    }
    else
    {
    printf("没有%s相关的内容!\n",read);
    }
    }
    }

    vector<MoveHotel *>::iterator i;
    for (i=hostlist.begin();i!=hostlist.end();i++)
    {
    printf("%s%s%s\n",(*i)->ip,(*i)->mac,(*i)->mark);
    }
    //vector<Sprite *>::iterator i; //指示器i:数组指针,保存元素地址的地址代号
    for (i=hostlist.begin();i!=hostlist.end();i++) //注意为:i!=m_vSprites.end()因为是保存着地址序列;而非整数序列
    {
    delete *i;
    }
    hostlist.clear();
    //vector<MoveHotel *>(hostlist).swap(MoveHotel); //创建新容器并无空复制原容器数据,再交换两个容器内的数据;达到压缩的目的;相当于ArrayList中的TrimToSize()
    return 0;
    }

    BOOL find(char *ip)
    {
    if (!hostlist.empty())
    {
    vector<MoveHotel *>::iterator i;
    for (i=hostlist.begin();i!=hostlist.end();i++)
    {
    if (StrCmp((*i)->ip,ip)==0)
    {
    printf("IP:%s\nMAC:%s\nMARK:%s\n",(*i)->ip,(*i)->mac,(*i)->mark);
    return TRUE;
    }

    }
    }
    return FALSE;
    }
  • 相关阅读:
    Linux下的ping命令
    git stash
    ansiable
    「疫期集训day4」硝烟
    「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数
    「状压DP」「暴力搜索」排列perm
    「疫期集训day3」要塞
    「疫期集训day2」高地
    「疫期集训day1」无言
    「区间DP」「洛谷P1043」数字游戏
  • 原文地址:https://www.cnblogs.com/shya/p/2334738.html
Copyright © 2020-2023  润新知