32             std::cout << 
"Bitvector does not represent the relations properly." << std::endl;
    37         unsigned int numOnesInVector = 0;
    38         for (
bool bit : pBitvector) numOnesInVector += bit;
    39         if (numOnesInVector < 
mNumObjects - 1) 
return false;    
    40         if (numOnesInVector == pBitvector.size()) 
return true;        
    49         unsigned int firstObject = 0;
    53             for (
unsigned int j = firstObject + 1; j < 
mNumObjects; j++)
    55                 if (pBitvector[firstObject * mNumObjects - firstObject * (firstObject + 1) / 2 + j])
    66         std::vector<unsigned int> nodesToVisit;
    67         nodesToVisit.push_back(firstObject);
    68         std::vector<unsigned int> seenNodes;
    69         seenNodes.push_back(firstObject);
    70         while (!nodesToVisit.empty())
    72             unsigned int currentNode = nodesToVisit[0];
    73             nodesToVisit.erase(nodesToVisit.begin());
    77                     unsigned int indexMin = std::min(currentNode, i);
    78                     unsigned int indexMax = std::max(currentNode, i);
    79                     unsigned int bitvectorindex = indexMin * mNumObjects - indexMin * (indexMin + 1) / 2 + (indexMax - indexMin) - 1;
    81                     if (pBitvector[bitvectorindex] && (std::find(seenNodes.begin(), seenNodes.end(), i) == seenNodes.end()))
    83                         nodesToVisit.push_back(i);
    84                         seenNodes.push_back(i);
 
bool isConnected(std::vector< bool > pBitvector)
ConnectivityChecker(unsigned int pNumObjects)