C++STL标准模板库

编写一程序,让用户自由地从键盘上输入整数,直到输入数字0时结束。把用户输入的数据保存在模板类vector定义的对象中,并对用户输入的所有数进行排序输出。在向显示器进行输出时,要求用以下3种方式实现:
1)仅使用vector的相关成员函数,不使用迭代器进行输出;
2)使用迭代器自己编程输出;
3)使用STL提供的通用算法for_each进行输出。
(提示:实现该题目时,首先定义模板类vector的一个对象,利用该对象进行对用户输入数据的操作。在进行数据输出时,第一种方式考虑采用类似于数组的随机访问方法,第二种方式利用Vector的迭代器进行输出,第二种方式则利用STL通用算法for_each进行实现,也可以才用copy函数进行实现。)

三种输出方式写在一个代码里了,有注释.
下面是输入后,通过3种方式输出的截图:

img

代码如下;

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    vector<int> vec;
    int t;
    //输入整数,直到输入0为止
    while (1)
    {
        cin >> t;
        if (t != 0)
            vec.push_back(t);
        else
            break;
    }
    //排序
    sort(vec.begin(), vec.end());
    //输出
    //1.第一种方式,使用成员函数
    for (int i = 0; i < vec.size(); i++)
    {
        if (i < vec.size() - 1)
            cout << vec.at(i) << " ";
        else
            cout << vec.at(i) << endl;
    }
    //2.第二种方式,使用迭代器
    vector<int>::iterator it = vec.begin();
    for (; it != vec.end(); it++)
    {
        if (it == vec.begin())
            cout << *it;
        else
            cout << " " << *it;
        
    }
    cout << endl;
    //3.第三种方式,使用for_each
    for_each(vec.begin(), vec.end(), [](int elem) {std::cout << elem << " "; }
    );
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632