zoukankan      html  css  js  c++  java
  • vector的初始化补充,list,find函数,指针和迭代器等<<0922

    
    
    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    
    //用一个容器去初始化另一个容器
    int main(int argc, const char *argv[])
    {
        vector<int> vec;
        vec.push_back(12);
        vec.push_back(89);
        vec.push_back(34);
        vec.push_back(23);
        vec.push_back(56);
    
        vector<int> vec2(vec);//可以用一个容器去初始化另外一个容器,前提是类型相同
        for(int t : vec2)
        {
            cout << t << " ";
        }
        cout << endl;
    
        return 0;
    }
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    //用一段迭代器范围去初始化另一个容器
    int main(int argc, const char *argv[])
    {
        vector<int> vec;
        vec.push_back(12);
        vec.push_back(89);
        vec.push_back(34);
        vec.push_back(23);
        vec.push_back(56);
    
        vector<int>::iterator it1, it2;
        it1 = vec.begin(); //12
        it2 = find(vec.begin(), vec.end(), 23);//使用find函数查找指定迭代器范围中 的元素
    /*补充另外一个find的使用方法,string中
     *可以使用s.find("")
     *s.find("",5)//从第五个开始找
     *s.find(str)
     *s.find('');
     *
     *
     */
        vector<int> vec2(it1, it2);//使用一段迭代器范围初始化一个容器,此时类型可以不同,可以将int改为double
        for(int i : vec2)//新的for循环的写法,直接遍历容器,当容器里面的元素为string时,为了加快效率前面可以写成for(const string &s : vec2),有时候为了简便,直接使用auto &s也可以
        {
            cout << i << " ";
        }
        cout << endl;
        return 0;
    }
    #include <iostream>
    #include <string>
    #include <vector>
    #include <list>
    using namespace std;
    
    int main(int argc, const char *argv[])
    {
        list<string> lst;
        lst.push_back("beijing");
        lst.push_back("shanghai");
    
        lst.push_front("shenzhen");//list多了一个可以在前面插入的方式,因为它是随机存储
    
        for(list<string>::const_iterator it = lst.begin();
            it != lst.end();//区别const_iterator和const iterator的区别,前者为迭代器指定的元素只读,后者是迭代器
            ++it)
        {
            cout << *it << " ";
        }
    
        cout << endl;
        return 0;
    }
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    //指针可以当做迭代器
    //
    int main(int argc, const char *argv[])
    {
        int a[5] = {2, 3, 1, 0, 9};
        int *pos = find(a, a + 5, 1);//迭代器和数组中的地址在find里面可以等效
        cout << pos << endl;//比如说也可以使用数组的地址实现对容器的初始化
        cout << &a[2] << endl;
        return 0;
    }
    
    
  • 相关阅读:
    Unity3D研究院之Assetbundle的实战(六十三)
    Unity3D研究院之Assetbundle的原理(六十一)
    常见图片格式详解
    unity 查看打包资源占用
    MUI框架-04-切换页面头部文字重叠
    MUI框架-03-自定义MUI控件样式
    MUI框架-02-注意事项-适用场景-实现页面间传值
    MUI框架-01-介绍-创建项目-简单页面
    安卓app开发-05-Android xml布局详细介绍
    安卓app开发-04- app运行的运行和调试
  • 原文地址:https://www.cnblogs.com/sunstars/p/3989718.html
Copyright © 2011-2022 走看看