相关疑难解决方法(0)

如何在C++ 11中有效地选择标准库容器?

有一个众所周知的图像(备忘单)称为"C++容器选择".这是为所需用途选择最佳容器的流程图.

有人知道是否已有C++ 11版本吗?

这是前一个: eC++容器选择

c++ c++-faq c++11

131
推荐指数
3
解决办法
1万
查看次数

从集合中的任意索引获取元素

我有一组类型set<int>,我想得到一个不是开始的地方的迭代器.

我正在做以下事情:

set<int>::iterator it = myset.begin() + 5;
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么这不起作用以及将迭代器放到我想要的地方的正确方法是什么.

c++ stl

10
推荐指数
1
解决办法
6286
查看次数

是否可以在C++ STL中获取集合中的单个元素?

我有以下带有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向量的任何元素?如果有,怎么样?

同时我们可以使用迭代器,但据我所知它可以使用全套.:)

c++ stl vector set c++11

1
推荐指数
2
解决办法
3932
查看次数

标签 统计

c++ ×3

c++11 ×2

stl ×2

c++-faq ×1

set ×1

vector ×1