草庐IT

value_iter

全部标签

c++ - 如何为非 const 类调用 const_iterator?

这个问题在这里已经有了答案:Howtousetwofunctions,onereturningiterator,theotherreturningconst_iterator(2个答案)关闭8年前。我阅读了一些与此问题相关的其他线程,但没有为我的问题提供解决方案。希望大家给我出出主意或建议。我正在尝试实现这个名为Map的类。它应该包含2个迭代器-iterator和const_iterator。我实现了它们-iterator继承自const_iterator,在Map类中我有以下函数:iteratorbegin();iteratorend();const_iteratorbegin()c

c++ - 了解 C++ 内存模型 : Different values on different runs

下面的代码有什么问题?我希望看到10由consumer1和consumer2生产,但有时我会看到-1。#include#include#include#includestd::atomicglobal;voidproducer(){global.store(10,std::memory_order_release);}voidconsumer1(){inta=global.load(std::memory_order_acquire);printf("ainconsumer1%d\n",a);}voidconsumer2(){inta=global.load(std::memory_o

c++ - 什么时候使用迭代器的 `value_type`?

我试图了解何时实际使用了iterator::value_type。因为,迭代器的所有运算符,似乎只使用iterator::pointer和iterator::reference。问题iterator::value_type是否真的用于某些事情?附加问题:迭代器是否继承自std::iterator提出一些语义问题?编辑:要理解我为什么问这个问题,是因为我正在为一种类型的迭代器工作,pointer和reference是代理类。 最佳答案 我可以考虑在通用代码中使用它。假设您在C++11中编写一个对范围求和的通用函数。你可以把它写成tem

c++ - set::key_comp 与 C++ 中的 set::value_comp?

在C++中,set::key_comp与set::value_comp有什么区别?转到cplusplus.com页面没有显着差异。此外在set::key_comp和相关的set::value_comp页面上最后一句是“(...)key_comp和它的兄弟成员函数value_comp是等价的。”例子几乎一样:http://www.cplusplus.com/reference/set/set/key_comp/http://www.cplusplus.com/reference/set/set/value_comp/ 最佳答案 key

c++ - 当没有任何意义时, `Iterator::pointer` 使用什么?

例如,考虑一些假设的to_upper_iterator遍历一系列字符,返回std::toupper对于operator*.这些迭代器别名对我来说很有意义:templatestructto_upper_iterator{usingvalue_type=CharT;usingreference=CharT;usingdifference_type=std::ptrdiff_t;usingiterator_category=std::random_access_iterator_tag;};没有意义的是什么应该/可以用于pointer别名。我试着把它关掉,但果然我遇到了编译错误。似乎这是由于

c++ - std::map::const_iterator 泄露了对值的非常量引用?

我观察到std::map::const_iterator泄漏了对value_type的非常量引用:#include#includeintmain(intargc,char*argv[]){std::mapfoo={{1,1},{4,2}};constauto&m=foo;constauto&it=foo.find(1);printf("%d%d\n",it->first,it->second);int&i=it->second;i=3;auto&one=foo.at(1);printf("%d%d\n",1,one);return0;}输出$g++test.cc&&./a.out111

c++ - 如何编写通用特征以将 T::value_type 与其他特征相匹配?

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭4年前。Improvethisquestion我正在尝试创建一种可以检测的“包装特征”,对于某些T和一些现有的一元特征Concept,即:T是“可迭代的”,并且T::value_type满足Concept这很有用,因为我有其他代码可能需要各种类型,包括std::vector,我想将此包装器特征用于enable_if所述代码中的各种功能。这是一个

使用一种按位 : I'll get duplicated values? 的 C++ 函数

这是我的C++函数,它使用一种按位:intgenkey(constunsignedchara,constcharb,constcharc){intval=0;unsignedchar*p=reinterpret_cast(&val);p[0]=a;char*q=reinterpret_cast(&val);q[1]=b;q[2]=c;returnval;}我用它来生成键(对象的唯一值)。可以传递给函数的值的范围是:对于a参数=>[0..255],对于b参数=>[0..127]和对于c参数=>[0..127].假设该函数只能使用相同的三个参数值调用一次。例如,只有一次调用的值为(10,0

c++ - 谷歌模拟 : Return() a list of values

通过GoogleMock的Return(),您可以返回调用模拟函数后将返回的值。但是,如果期望某个函数被调用多次,并且每次都希望它返回不同的预定义值。例如:EXPECT_CALL(mocked_object,aCertainFunction(_,_)).Times(200);如何让aCertainFunction每次都返回一个递增的整数? 最佳答案 使用sequences:using::testing::Sequence;Sequences1;for(inti=1;i 关于c++-谷歌模

c++ - 如果容器元素是指针,为什么允许我从 const_iterator 调用非 const 成员函数?

考虑以下代码:#includeusingnamespacestd;structfoo{voidbar(){}};intmain(){{vectora;a.push_back(newfoo());a.push_back(newfoo());a.push_back(newfoo());vector::const_iteratoritr=a.begin();(*itr)->bar();//compiles-thisbecomesmoreconfusing//whenfoundinaconstmethod.Onfirst//glance,onewill(oratleastme)may//ass