vector of arrays of pointers to structures
Hi,
I have a function as below:
Code:
void f ( std::vector<Blob> *blobsPtr )
{
// create the vector to store every pair of pointers to Blobs
vector<Blob*[2]> pairs;
// create a vector of pairs of Blob pointers, total of (num of Blobs choose 2)
for (vector<Blob>::size_type i = 0; i < blobsPtr->size() - 1; i++)
for (vector<Blob>::size_type j = 0; j < blobsPtr->size(); j++)
{
const Blob *b[2];
b[0] = &(blobsPtr->at(i));
b[1] = &(blobsPtr->at(j));
pairs.push_back(b);
}
// examine each pair and remove ones that fail the test
}
Where Blob is a simple structure.
The goal of the function is to take all of the elements in the vector referenced by blobsPtr, and first create a vector of pairs of pointers to Blobs. In other words, create a vector that has every pairwise combination of Blobs (as pointers). Then I want to do some tests and remove the elements of 'pairs' that fail the tests. Finally, I want to delete all the Blobs that failed the test from the vector pointed to by 'blobsPtr'.
Whew!
The error I am getting with the current version is "cannot convert parameter 1 from 'const Blob *[2]' to 'Blob *const (&)[2]" when I try to do the push_back.
I'm starting to get confused, so any help would be appreciated. Or perhaps I'm going about this totally wrong. The thing is I don't want to copy all the Blobs when I'm creating the pairwise vector, because it's just a waste of memory.
Thanks.