Позволяет ли переменная vector<set >, чтобы столбцы содержали дубликаты?

#c

#c

Вопрос:

если, например, у меня есть этот код:

 #include lt;iostreamgt; #include lt;setgt; #include lt;vectorgt;  using namespace std;  //To be used for random values for this example int randInt(int min, int max) {  return rand() % (max - min   1)   min; }  int main() {  vectorlt;setlt;intgt; gt; nums;  for (int i = 0; i lt; 5; i  )  {  setlt;intgt; s;  int x = 0;  int y = 0;  for (int j = 0; j lt; 5; j  )  {  x = y   1;  y  = 15;  pairlt;setlt;intgt;::iterator, boolgt; isUsed = s.insert(randInt(x, y));  while (isUsed.second)  {  isUsed = s.insert(randInt(0, 100);  }  }   nums.push_back(s);  }   return 0; }  

возможно ли, чтобы первое значение первой строки совпадало с первым значением второй строки? Если это так, есть ли простой способ исправить это, потому что я пытаюсь сделать что-то, что использует это, и я пытаюсь собрать столбцы в набор, вставить значения, чтобы заменить любые дублированные значения, которые были удалены, вернуть значения столбцов в их строки, что делает мой код немного длиннее, чем мне бы хотелось (для этого я использовал три вложенных цикла for, я даже не закончил их, прежде чем решил, что это становится слишком длинным, не говоря уже о том, что все было внутри них)

Комментарии:

1. Почему бы и нет? Каждый набор, хранящийся в векторе, независим от других наборов.

2. Создайте два набора, один для хранения по строкам (как вы это сделали), и один, в котором хранится все, чтобы вы могли проверить, уникален ли каждый элемент или нет (просто удалите его в конце).

3. Кстати, вам просто нужно проверить, что каждый элемент «глобального» set уникален

4. @tony_merguez как бы это выглядело? Подождите, я только что перечитал ваш комментарий, это действительно помогает.