contains 함수를 수행하려고하는 벡터가 있습니다. 일종의 캐스팅 오류가 발생하며 솔루션을 함께 구성 할 수 없습니다. 나는 또한 내가하고있는 일이 벡터에 가치가 있는지를 확인하는 적절한 방법인지 여부를 알고 싶다. 하지 기본 생성자를 사용하여 vector
를 선언값이 벡터에 포함되어 있는지 어떻게 확인합니까? C++
#include "stdafx.h"
#include <vector>
static void someFunc(double** Y, int length);
static bool contains(double value, std::vector<double> vec);
int main()
{
double doubleArray[] = { 1, 2, 3, 4, 5 };
double *pDoubleArray = doubleArray;
int size = sizeof doubleArray/sizeof doubleArray[0];
someFunc(&pDoubleArray, size);
return 0;
}
static void someFunc(double** Y, int length)
{
std::vector<double> vec();
for(int i = 0; i < 10; i++)
{
//error: 'contains' : cannot convert parameter 2 from 'std::vector<_Ty> (__cdecl *)(void)' to 'std::vector<_Ty>'
if(contains(*(Y[i]), vec))
{
//do something
}
}
}
static bool contains(double value, std::vector<double> vec)
{
for(int i = 0; i < vec.size(); i++)
{
if(vec[i] == value)
{
return true;
}
}
return false;
}
+1 잘 구성된 답변입니다. 잘 했어. –
굉장합니다, 잘 작동합니다! 겹쳐진 답변을 가진 다른 사람들에게도 감사드립니다! –
FYI, std :: find는 일치 항목이없는 경우 마지막 요소를 반환하므로 '! = vec.end()'가 존재합니다 – xinthose