我想在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)
。
答案 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;
}