C ++:在集合容器中打印出向量元素

时间:2018-05-08 03:49:22

标签: c++ vector

我想在set容器中打印出vector元素。我按如下方式编写了代码:

int main() {
  vector<int> aa = {3, 2, 1, 1};
  vector<int> bb = {5, 1, 7, 9};

  set<vector<int>> myset; // setVector

  myset.insert(aa);
  myset.insert(bb);

  for (auto elem : myset) {
    cout << elem << ", ";
  }
  return 0;
}

但是,此代码无法打印出向量:(3, 2, 1, 1)(5, 1, 7, 9)

3 个答案:

答案 0 :(得分:5)

您还应该将vector元素循环到myset

for (auto const &elem : myset) {    // loop set elements
   for (auto const &v: elem) {      // loop vector elements
      std::cout << v << ", ";       // print each vector element
   }
   std::cout << std::endl;
}

答案 1 :(得分:3)

auto elem: myset此处elem是指vectors

打印出载体的内容:

 for (auto elem : myset)
 {
      for(auto x:elem) // elem is each vector
      {
           std::cout << x << " ";
      }
       std::cout << std::endl;   
  }

在这里,您将遍历内部vectors中的for loop。 此外,如果您要更新元素或者为了防止副本,您可能希望在循环中使用auto&,从那时起您将获得参考。

答案 2 :(得分:0)

要打印您尝试过的内容。你应该重载&lt;&lt;操作

你也可以这样使用。

for (auto elem : myset) {
  cout << "("; 
  for(auto item:elem)
   {
       cout << item << ",";
   }
   cout << ")"; 
   cout << endl;   
}