deque 容器
#include <iostream>
#include <vector>
#include <deque>
#include <algorithm>
template <typename T>
void display(const std::deque<T> &arr){
for (const auto &i: arr)
std::cout << i << " ";
std::cout << std::endl;
}
void test1()
{
std::deque<int> d1 {1, 2, 3, 4, 5};
display(d1);
std::deque <int> d2(10, 88);
display(d2);
d2[0] = 99;
d2.at(1) = 100;
display(d2);
}
void test2()
{
std::deque<int> d1 {1, 2, 3, 4, 5};
d1.push_back(100);
d1.push_front(0);
display(d1);
std::cout << "第一个元素:" << d1.front() << std::endl;
std::cout << "最后一个元素:" << d1.back() << std::endl;
std::cout << "大小:" << d1.size() << std::endl;
d1.pop_back();
d1.pop_front();
display(d1);
}
void test3()
{
std::vector<int> d1 {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::deque<int> d2{0, 0};
for (auto &i:d1)
{
if (i % 2 ==0)
d2.push_back(i);
else
d2.push_front(i);
}
display(d2);
}
void test4()
{
std::vector<int> d1 {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::deque<int> d2{};
for (auto &i:d1){
d2.push_back(i);
}
display(d2);
d2.clear();
for (auto &i:d1){
d2.push_front(i);
}
display(d2);
}
void test5()
{
std::vector<int> d1 {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::deque<int> d2{};
std::copy(d1.begin(), d1.end(), std::back_inserter(d2));
display(d2);
d2.clear();
std::copy(d1.begin(), d1.end(), std::front_inserter(d2));
display(d2);
}
int main()
{
test5();
}