有一个众所周知的图像(备忘单)称为"C++容器选择".这是为所需用途选择最佳容器的流程图.
有人知道是否已有C++ 11版本吗?
这是前一个:

我有一组类型set<int>,我想得到一个不是开始的地方的迭代器.
我正在做以下事情:
set<int>::iterator it = myset.begin() + 5;
Run Code Online (Sandbox Code Playgroud)
我很好奇为什么这不起作用以及将迭代器放到我想要的地方的正确方法是什么.
我有以下带有C++ STL向量的C++代码,
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
vector <int> v;
for (int i=0; i<15; i++)
v.push_back (i);
cout << v[10] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它通常会打印存储在第10个索引中的元素.输出为10.
但我也用C++ STL设置了同样的东西,
#include <iostream>
#include <set>
using namespace std;
int main ()
{
set <int> myset;
for (int i=0; i<15; i++)
myset.insert (i);
cout << myset[10] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它给我编译错误显示以下消息:(
prog.cpp:在函数'int main()'中:
prog.cpp:12:18:错误:'operator []'不匹配(操作数类型是'std :: set'和'int')cout << myset [10] << endl;
所以,我的问题是,有没有办法在C++中打印STL向量的任何元素?如果有,怎么样?
同时我们可以使用迭代器,但据我所知它可以使用全套.:)