• 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;
    }
    
    
  • 相关阅读:
    ie 火狐兼容集锦
    ie css png
    jQuery插件——autoTextarea-文本框根据输入内容自适应高度
    比onload更快获取图片尺寸(转载)
    数据库性能问题排查
    项目管理_FindBugs的使用
    js动态获取子复选项并设计全选及提交
    SVN使用_获取某版本后改动的文件列表
    存储过程_把字符串转化为结果集
    Spring下如何配置bean
  • 原文地址:https://www.cnblogs.com/sunstars/p/3989718.html
Copyright © 2020-2023  润新知