#include <iostream>
#include <vector>
#include <typeinfo>
void printVector(const std::vector<int>& vect)
{
std::cout << std::endl << typeid(int).name() << ": " << std::endl;
for(const auto& x: vect)
std::cout << x << ' ';
std::cout << std::endl;
}
void printVector(const std::vector<double>& vect)
{
std::cout << std::endl << typeid(double).name() << ": " << std::endl;
for(const auto& x: vect)
std::cout << x << ' ';
std::cout << std::endl;
}
void printVector(const std::vector<char>& vect)
{
std::cout << std::endl << typeid(char).name() << ": " << std::endl;
for(const auto& x: vect)
std::cout << x << ' ';
std::cout << std::endl;
}
void printVector(const std::vector<std::string>& vect)
{
std::cout << std::endl << typeid(std::string).name() << ": " << std::endl;
for(const auto& x: vect)
std::cout << x << ' ';
std::cout << std::endl;
}
int main(int argc, char *argv[])
{
std::vector<int> v1{1,2,3,4,5,6,7,8,9,10};
std::vector<double> v2{1.1,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1,10.1};
std::vector<char> v3{'a','b','c','d','e'};
std::vector<std::string> v4{"foo", "bar", "lol"};
printVector(v1);
printVector(v2);
printVector(v3);
printVector(v4);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dHlwZWluZm8+CgoKdm9pZCBwcmludFZlY3Rvcihjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiB2ZWN0KQp7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsIDw8IHR5cGVpZChpbnQpLm5hbWUoKSA8PCAiOiAiIDw8IHN0ZDo6ZW5kbDsKICAgIGZvcihjb25zdCBhdXRvJiB4OiB2ZWN0KQogICAgICAgIHN0ZDo6Y291dCA8PCB4IDw8ICcgJzsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7Cn0Kdm9pZCBwcmludFZlY3Rvcihjb25zdCBzdGQ6OnZlY3Rvcjxkb3VibGU+JiB2ZWN0KQp7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsIDw8IHR5cGVpZChkb3VibGUpLm5hbWUoKSA8PCAiOiAiIDw8IHN0ZDo6ZW5kbDsKICAgIGZvcihjb25zdCBhdXRvJiB4OiB2ZWN0KQogICAgICAgIHN0ZDo6Y291dCA8PCB4IDw8ICcgJzsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7Cn0Kdm9pZCBwcmludFZlY3Rvcihjb25zdCBzdGQ6OnZlY3RvcjxjaGFyPiYgdmVjdCkKewogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbCA8PCB0eXBlaWQoY2hhcikubmFtZSgpIDw8ICI6ICIgPDwgc3RkOjplbmRsOwogICAgZm9yKGNvbnN0IGF1dG8mIHg6IHZlY3QpCiAgICAgICAgc3RkOjpjb3V0IDw8IHggPDwgJyAnOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKfQp2b2lkIHByaW50VmVjdG9yKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgdmVjdCkKewogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbCA8PCB0eXBlaWQoc3RkOjpzdHJpbmcpLm5hbWUoKSA8PCAiOiAiIDw8IHN0ZDo6ZW5kbDsKICAgIGZvcihjb25zdCBhdXRvJiB4OiB2ZWN0KQogICAgICAgIHN0ZDo6Y291dCA8PCB4IDw8ICcgJzsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICAgIHN0ZDo6dmVjdG9yPGludD4gdjF7MSwyLDMsNCw1LDYsNyw4LDksMTB9OwogICAgc3RkOjp2ZWN0b3I8ZG91YmxlPiB2MnsxLjEsMi4xLDMuMSw0LjEsNS4xLDYuMSw3LjEsOC4xLDkuMSwxMC4xfTsKICAgIHN0ZDo6dmVjdG9yPGNoYXI+IHYzeydhJywnYicsJ2MnLCdkJywnZSd9OwogICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHY0eyJmb28iLCAiYmFyIiwgImxvbCJ9OwoKICAgIHByaW50VmVjdG9yKHYxKTsKICAgIHByaW50VmVjdG9yKHYyKTsKICAgIHByaW50VmVjdG9yKHYzKTsKICAgIHByaW50VmVjdG9yKHY0KTsKfQ==