|
STL의 unary_function을 이용해서 for_each()를 써볼려고 하는데요..
벡터 반복자 부분에서 자꾸 에러가 납니다.. 왜 에러가 나는지 도대체 모르겠습니다..ㅡㅡ;;;
소스는 단지.. 벡터에 있는 데이터를 PointAverage2 객체함수를 이용해 그대로 받아서 다시 리턴해서 출력하도록 했습니다.
뭐가 문제인가요?
답변 부탁드립니다..
//에러메시지
[C++ Error] _algo.h(65): E2064 Cannot initialize 'const vector<short,allocator<short> > &' with 'short'
[C++ Error] _algo.h(65): E2342 Type mismatch in parameter 'p' (wanted 'const vector<short,allocator<short> > &', got 'short')
//소스..
class PointAverage2 : public std::unary_function< std::vector<short>, int* >
{
private:
std::vector<int> sum;
public :
void operator()(const std::vector<short> &p)
{
for(int i = 0; i < p.size(); i++)
sum.push_back(p[i]);
}
int* result()
{
return &sum[0];
}
};
void __fastcall TForm1::Button3Click(TObject *Sender)
{
std::vector<short> vp;
vp.push_back(0);
vp.push_back(1);
vp.push_back(2);
vp.push_back(3);
vp.push_back(4);
int *pData = for_each(vp.begin(), vp.end(), PointAverage2()).result();
for(int i = 0; i < 5; i++)
{
ShowMessage(IntToStr(pData[i]));
}
}
//---------------------------------------------------------------------------
|