• 容器类、迭代器及示例


    顺序容器类vector

    #include <iostream.h>
    #include <VECTOR>                                // 包含vector类所在的头文件
    
    using namespace std;                            // 使用标准命名空间
    
    typedef vector<int> MYINTVECT;                    // 自定义容器模板的数据类型
    #define ORDER_COUNT 12                            // 定义订单数量
    int main(int argc, char* argv[])
    {    
        MYINTVECT ordervector(ORDER_COUNT);            // 定义自定义
        for(int i = 0; i < ORDER_COUNT; i++)        // 填充订单容器变量中的值
        {
            int iTemp = i+1;                        // 定义临时变量
            cout << "[" << iTemp << "] ";            // 输出变量值
            ordervector[i] = iTemp;                    // 赋值vector变量值
        }
        cout << endl;
    
        cout << "存储在STL的vector容器中的数据有:" << endl;
        for(int j = 0; j < ORDER_COUNT; j++)        // 输出订单容器变量中的值
            cout << "[" << ordervector[j] << "] ";
        char l; cin >> l;                            // 等待用户响应
        return 0;                                    // 主函数退出返回
    }


    关联容器类set

    #include <iostream.h>
    #include <set>                                    // 引用set类所在的头文件
    
    using namespace std;                            // 使用标准命名空间
    
    typedef set<float, less<float>, allocator<float> > MYFLOATSET;    // 自定义存储浮点型的集合数据类型
    int main(int argc, char* argv[])
    {
        MYFLOATSET myfset;                            // 声明浮点型集合变量
        MYFLOATSET::iterator myfsetPtr;                // 声明浮点型迭代变量
        float fTemp;                                // 声明临时变量
    
        srand(1);                                    // 生成随机种子
        cout<< "为set变量赋值:" << endl;
        for(int i = 0; i < 9; i++)
        {
            fTemp = rand();                            // 生成随机数
            fTemp /= 100;                            // 取浮点型
            cout << "[" << fTemp << "] ";            // 输出生成的浮点数
            myfset.insert(fTemp);                    // 将浮点数添加到set中
        }
        cout << endl << "从set变量中获取数据" << endl;    
        for(myfsetPtr = myfset.begin(); myfsetPtr != myfset.end();    myfsetPtr++)    // 使用迭代指针
            cout << "[" << *myfsetPtr << "] ";        // 输出每个元素的值
    
        char l;    cin >> l;                            // 等待用户响应
        return 0;                                    // 函数返回退出
    }


    迭代器iterator

    #include <iostream>
    #include <string>
    #include <list>                // 包含包括列表定义的list头文件
    
    using namespace std;        // 引用标准命名空间
    
    typedef list<string> STRINGLIST;    // 重定义字符串列表类型
    
    int main(int argc, char* argv[]) 
    {
        STRINGLIST myList;                // 定义字符串列表变量
        STRINGLIST::iterator myListIt;    // 定义字符串枚举器变量   
    
        myList.push_back("张三");        // 向字符串列表中增加数据
        myList.push_back("李四");        // 向字符串列表中增加数据
        myList.push_back("王五");        // 向字符串列表中增加数据
        myList.push_back("赵六");        // 向字符串列表中增加数据
        myList.push_back("田七");        // 向字符串列表中增加数据
        myList.push_back("欧阳");        // 向字符串列表中增加数据
        myList.push_back("上官");        // 向字符串列表中增加数据
    
        cout << "列表中的数据有: " << endl;    // 输出提示信息
        myListIt=myList.begin();            // 初始化链表迭代器,指向链表头
        for (myListIt=myList.begin(); myListIt != myList.end() ; myListIt++)    // 通过循环依次输出链表中的内容
            cout << "[" << *myListIt  << "]  ";        // 输出迭代器当前指向的元素的值
    
        myListIt=myList.begin();            // 初始化链表迭代器,指向链表头
        advance(myListIt, 2);                // 指向链表的第3个元素
        cout << endl << "第三个元素=" << *myListIt << endl;    // 输出第三个变量的值   
        cout << "当前节点到链表尾还有" << distance(myListIt, myList.end()) << "个数据结点";    // 输出迭代器当前元素距离链表尾元素的个数
        char l;  cin >> l;
        return 0;
    }
  • 相关阅读:
    Mysql 一主两从架构转换成级联复制
    redis安装配置
    SQL语句中----删除表数据drop、truncate和delete的用法
    编译安装apache2.4.28错误
    zabbix3.2.5编译安装部署
    Keepalived 高可用集群实践
    sersync+rsync实时同步备份部署
    LINE学习
    DeepWalk学习
    csv文件的读取
  • 原文地址:https://www.cnblogs.com/chun-xi/p/3454744.html
Copyright © 2020-2023  润新知