zoukankan      html  css  js  c++  java
  • 第九章

    顺序容器

    容器类型介绍
    vector 可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。
    deque 双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。
    list 双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度都很快。
    forward_list 单向链表。只支持单向顺序访问。在链表任何位置进行插入/删除操作速度都很快。
    array 固定大小数组。支持快速随机访问。不能添加或者删除元素。
    string vector相似的容器,但专门用于保存字符。随机访问块。在尾部插入/删除速度快

    习题

    9.4编写函数,接受一对指向vector<int>的迭代器和一个int值。在两个迭代器指定的范围中查找给定的值,返回一个布尔值来指出是否找到。

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    
    bool FindANumber(int i, vector<int>::iterator v1, vector<int>::iterator v2)
    {
        vector<int>::iterator iter = v1;
        for(;iter != v2; ++iter)
        {
            if(*iter == i)
            {
                cout << "find number:" << i << endl;
                return true;
            }
    
        }
        cout << "not find number" << endl;
        return false;
    }
    
    int main()
    {
        vector<int> vi;
        for(int i = 0; i < 10 ; ++i)
        {
            vi.push_back(i);
        }
    
    /*    for(auto a : vi)
            cout << a << endl;
    */
        FindANumber(5, vi.begin(), vi.end());
        return 0;
    }
    

    9.5重写上一题的函数,返回一个迭代器指向找到的元素。注意,程序必须处理未找到给定值的情况。

    vector<int>::iterator FindANumber(int i, vector<int>::iterator v1, vector<int>::iterator v2)
    {
        vector<int>::iterator iter = v1;
        for(;iter != v2; ++iter)
        {
            if(*iter == i)
            {
                cout << "find number:" << i << endl;
                return iter;
            }
    
        }
        cout << "not find number" << endl;
        return v2;
    }

    9.9

    vector<int> v1;
    const vector<int> v2;
    auto it1 = v1.begin(), it2 = v2.begin();
    auto it3 = v1.cbegin(), it4 = v2.cbegin();

    it1 是 vector<int>::iterator

    it2it3 和 it4 是 vector<int>::const_iterator

    9.14编写程序,将一个list中的char *指针元素赋值给一个vector中的string

        list<const char*> l = {"hi", "c++"};
        vector<string> vc;
        vc.assign(l.begin(), l.end());
  • 相关阅读:
    RedisCacheTool参考其中的文件读写功能
    eclipse eayExplorer 查看代码的资源管理器打开方式
    有关写代码效率的问题
    Eclipse
    解决pdm打开只显示表名不显示字段的步骤
    绝对定位元素的水平垂直居中
    Maven依赖之Scope
    无提示关闭弹出窗口
    Maven模块与模块间的依赖
    Maven+Hibernate4注解0配置示例
  • 原文地址:https://www.cnblogs.com/11ys/p/14692286.html
Copyright © 2011-2022 走看看