wymyśliłem następujące:zdać kontenera std do funkcji
template <typename T> inline void printcontainer(std::vector<T> container)
{
for(auto it = container.begin(); it != container.end(); it++)
{
std::cout << *it << std::endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<int> v;
v.push_back(5);
v.push_back(4);
v.push_back(3);
printcontainer(v);
return 0;
}
(Przepraszamy za push_backs
, visual studio nie akceptuje list initializer ... Fuj !!)
teraz ta funkcja jest ograniczona do std::vector
, jak mogę ją ustawić, aby móc przekazywać inne pojemniki, takie jak tablice std::list
itd.
Jaka wersja VC++ używasz nie obsługuje list initializer? – MikeMB
Visual Studio 2012, rzeczy takie jak 'std :: vector v {1,2,3};' nie jest obsługiwane, więc musisz użyć obejścia w stylu c-style, z którego całkiem nie wiem. Również nie ma 'std :: initializer_list' dość dziwne eh. –
Tak, przyzwyczaiłem się już do C++ 11, że zapomniałem, że VS zaadoptował wiele/najwięcej? C++ 11 funkcji nie wcześniej niż VS 2013. – MikeMB