Cod sursa(job #1181760)

Utilizator RaduDoStochitoiu Radu RaduDo Data 3 mai 2014 17:01:50
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.35 kb
#include <iostream>
using std::cout;
using std::endl;
#include <list>
#include <algorithm>
#include <iterator>
template <class T>
void printList(const std::list<T> &listRef);
int main()
{
    const int SIZE = 4;
    int a[SIZE] = {2, 4, 6, 8};
    std::list<int> values, otherValues;
    values.push_front(1);
    values.push_front(2);
    values.push_back(4);
    values.push_back(3);
    cout << "lista values contine: ";
    printList(values);
    values.sort();
    cout << "\ndupa sort lista values contine: ";
    printList(values);
    otherValues.insert(otherValues.begin(), a, a+SIZE);
    cout << "\ndupa insert lista otherValues contine: ";
    printList(otherValues);
    values.splice(values.end(), otherValues);
    cout << "\ndupa splice lista values contine: ";
    printList(values);
    values.sort();
    cout << "\ndupa sort lista values contine: ";
    printList(values);
    otherValues.insert(otherValues.begin(), a, a+SIZE);
    otherValues.sort();
    cout << "\nlista otherValues contine: ";
    printList(otherValues);
    values.merge(otherValues);
    cout << "\ndupa merge:\n lista values contine: ";
    printList(values);
    cout << "\n lista otherValues contine: ";
    printList(otherValues);
    values.pop_front();
    values.pop_back();
    cout << "\ndupa pop_front si pop_back lista values contine: ";
    printList(values);
    values.unique();
    cout << "\ndupa unique, lista values contine: ";
    printList(values);
    //metoda swap poate fi folosita de toti containerii
    values.swap(otherValues);
    cout << "\ndupa swap:\n lista values contine: ";
    printList(values);
    cout << "\n lista otherValues contine: ";
    printList(otherValues);
    values.assign(otherValues.begin(), otherValues.end());
    cout << "\ndupa assign lista otherValues contine: ";
    printList(values);
    values.merge(otherValues);
    cout << "\ndupa merge lista values contine: ";
    printList(values);
    values.remove(4);
    cout << "\ndupa remove lista values contine: ";
    printList(values);
    cout << endl;
    return 0;
}

template <class T>
void printList(const std::list<T> &listRef)
{
    if(listRef.empty())
        cout << "Lista este goala";
    else
    {
        std::ostream_iterator<T> output(cout, " ");
        std::copy(listRef.begin(), listRef.end(), output);
    }
}