저는 C++을 처음 접했고 이것을 수행하는 방법을 잘 모르겠습니다. 템플릿을 배우려고합니다.일반 함수에서 반복자를 반환하기
이것은 현재 코드입니다. 컨테이너가 (어떤 타입을 받을지 지정되지 않은) 컨테이너를 보내고 정수가 컨테이너에있는 반복자와 함께 전달되면 true를 반환합니다. 나타나지 않으면 False입니다.
#include <iostream>
#include <vector>
#include <list>
template <typename Iter>
bool function(Iter first, Iter last, const int x)
{
for (auto it = first; it!=last; ++it)
{
if (*it == x)
{
return true;
}
}
return false;
}
int main()
{
std::vector<int> vec = {1,2,5,10,11};
std::list<int> lis = {1,1,5,9,55};
auto first = vec.begin(), last = vec.end();
auto first2 = lis.begin(), last2 = lis.end();
std::cout<<function(first, last, 11);
std::cout<<function(first, last, 9)<<std::endl;
std::cout<<function(first2, last2, 6);
std::cout<<function(first2, last2, 55)<<std::endl;
return 0;
}
이 함수를 수정하여 bool을 반환하는 대신 첫 번째 일치 항목에 반복기를 반환합니다. 이 일을 어떻게 하죠? 누군가가 나를 올바른 방향으로 밀어 넣을 수 있다면 정말 도움이 될 것입니다.
대신 [std :: find] (http://en.cppreference.com/w/cpp/algorithm/find)를 사용할 수 있습니까? – billz
먼저 자신을 찌르다가 붙어 있다면 시도한 것을 게시하고 도와 드리겠습니다. – bcr