void updateGroupNodesVector(GroupNodeVector &groupNodes, std::string thisGroupPath) { StringVector groupPathComponents = stringSplit(thisGroupPath,"/", false); size_t numGroupPathComponents = groupPathComponents.size(); for (int i = 0; i < numGroupPathComponents; i++) { std::string thisNodeName = groupPathComponents[i]; StringVector thisNodeParents; for (int p = 0; p < i; p++) { thisNodeParents.push_back(groupPathComponents[p]); } int existingGroupNodeIndex = -1; // Check if group node already exists for (int g = 0; g < groupNodes.size(); g++) { GroupNodeStruct thisGroupNode = groupNodes[g]; if ( (thisGroupNode.name == thisNodeName) && (thisGroupNode.parents == thisNodeParents) ) { existingGroupNodeIndex = g; break; } } if (-1 == existingGroupNodeIndex) // Group node does not exist { // Create new group node GroupNodeStruct newGroupNode; newGroupNode.id = groupNodes.size(); newGroupNode.name = thisNodeName; newGroupNode.parents = thisNodeParents; groupNodes.push_back(newGroupNode); } else // Group node already exists { // Do nothing } } }