STL常用容器使用

2017-09-29  本文已影响0人  板混DK

题目描述:

编写一个C++程序, 建立整数向量V、整数队列Q、整数栈S1、S2;输入若干整数, 0作为输入结束; 将负整数依次保存在向量V中;将正整数中的素数保存在队列Q中; 将正整数中的偶数保存在栈S1中; 将正整数中的奇数保存在栈S2中;最后依次分别将保存在V、Q、S1、S2容器中的整数输出,以’\t’作为分隔; 每个容器中整数输出后换行。

输入描述:

输入若干整数, 0作为输入结束;

输出描述:

每个容器中整数输出后换行。向量容器按顺序输出,队列按出队列次序输出,栈按出栈次序输出

输入样例:

2 5 8 -2 -4 10 -6 9 11 0

输出样例:

-2 -4 -6
2 5 11
10 8 2
11 9 5
——————————————————————————————————————

分析:

队列,向量和栈的基本应用

代码:

#include <iostream>
#include <vector>
#include <queue>
#include <stack>
using namespace std;


bool prime(int n)
{
    if (n < 2) return false;

    for (int i=2;i<n/2;i++)
        if ((n%i)==0) return false;

    return true;
}

int main()
{
    vector<int> V;
    queue<int> Q;
    stack<int> S1, S2;
    int parameter;

    cin >> parameter;
    while ( parameter!=0 )
    {
        //负数
        if (parameter < 0)
            V.push_back(parameter);
        //正数
        else
        {
            //素数
            if (prime(parameter))
                Q.push(parameter);

            ((parameter%2) == 1) ? S2.push(parameter) : S1.push(parameter) ;
        }
        cin >> parameter;
    }
        for(int i =0;i < (int)V.size();i++)
            cout << V[i] << "\t";
        cout << endl;

        while(!Q.empty())
        {
            cout << Q.front() << "\t";
            Q.pop();
        }
        cout << endl;

        while(!S1.empty())
        {
            cout << S1.top() << "\t";
            S1.pop();
        }
        cout << endl;

        while(!S2.empty())
        {
            cout << S2.top() << "\t";
            S2.pop();
        }
        cout << endl;



    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读