首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问std::vector<std::reference_wrapper<Type>>中的元素

访问std::vector<std::reference_wrapper<Type>>中的元素
EN

Stack Overflow用户
提问于 2014-01-09 01:59:46
回答 1查看 1.4K关注 0票数 0

我试图使用reference_wrappers向量做一些工作,并遇到了一些问题。我得到的是:

代码语言:javascript
复制
std::vector<std::reference_wrapper<Type>> vec;
//Some stuff...
for(int i = 0; i < vec.size(); i++)
{
        if(&vec[i] == &vec)
    {
        return true;
    }
}

这不管用。我对std::reference_wrapper完全陌生,所以我想我不知道如何使用它。上面的例子给了我一个“缺乏强制转换”的错误。

我在另一个地方做了这样的事情:

vec[i].someMethod();

产生的结果:

代码语言:javascript
复制
__gnu_cxx::__alloc_traits<std::allocator<std::reference_wrapper<Type> > >::value_type’ has no member named 'someMethod()'

我用的是GCC4.8

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-09 02:19:09

一些简单的例子

代码语言:javascript
复制
int i = 10;
std::vector<std::reference_wrapper<int>> v;

v.push_back( std::ref( i ) );

std::cout << v[0] << std::endl;
std::cout << v[0].get() << std::endl;

在你的例子中,这个建筑看起来像

代码语言:javascript
复制
vec[i].get().someMethod();

我没有翻看你最新的帖子。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21010341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档