草庐IT

c++ - 在 C++ 中初始化模板时将函数传递给模板对象

我正在尝试为HashMap编写一个实现,除了iostream、string和cassert之外,我不允许使用stdlib中的任何内容。它需要是通用的,因此填充桶的值可以是任何类型。我为此需要模板,但无法设法以任何方式传递哈希函数。这将是头文件:templateclasshashTable{public:hashTable(intsize){//Createsanemptyvectorofsizeonthetable}define(Valuev){loadsvalueinVector[hashFunction(v)];}...private:Vectorwithalltheelement

c++ - 支持多态的Stored-by-Value Pool,如何使用智能指针?

介绍我有一个数据结构:值池。(不是指针池)当我调用create()时,它会返回Handle。到目前为止一切都很好。templateclassPool{std::vectorv;//storebyvalueHandlecreate(){....}}templateclassHandle{Pool*pool_;//pointerbacktocontainerintpool_index_;//whereIaminthecontainerT*operator->(){returnpool_->v.at(pool_index_);//i.e."pool[index]"}voiddestroy()

c++ - 具有复杂值类型 : confusion with value_type and reference 的迭代器

我想创建一个自定义迭代器包装器,例如enumerate:给定一对类型为T的迭代器,它会返回一个类型为std::pair的可迭代对象,其中该对的第一个元素将取值0、1、2,依此类推。我无法确定应该是什么value_type和reference我的迭代器。我想支持两种行为:首先,引用底层序列的值:for(auto&kv:enumerate(my_vec)){kv.second=kv.first;}(类似于std::iota);其次,复制值:std::vectora{10,20,30};autocopy=*enumerate(a).begin();a[0]=15;std::cout我很困惑I

c++ - 从 .csv 文件中的字段读取值?

昨天我在一些帮助下制作了一个小脚本来读取.csv文件。虽然我找到了一种读取第一个值并存储它的方法,但出于某种原因,它存储了最后一个值。我将我认为应该是第一个值的值存储在value1下,并重新显示它以确保它正确显示并且实际上存储在可调用变量下。有人知道这段代码有什么问题吗?我认为我应该使用vector,但是当我阅读我在互联网上找到的关于它们的引用表时,我有点被抛弃了。感谢您的帮助。#include#include#includeusingnamespacestd;intmain(){intloop=1;stringvalue;stringvalue1;while(loop=1){cout

c++ - 具有不完整 Value 参数的 Boost.Iterator Facade

我正在尝试将boost::iterator_facade与不完整的Value一起使用模板参数。这失败了,因为iterator_facade正试图检查类型is_pod。这是预期的行为吗?我可以解决这个限制吗某种方式?我可以编写一个简单地代理foo和为它提供隐式转换,但我宁愿有一个更简单的解决方案。#includeclassiter:publicboost::iterator_facade{private:friendclassboost::iterator_core_access;voidincrement(){}boolequal(iterconst&other)const{retur

c++ - 获取类中静态属性的个数

我有一个仅由静态属性组成的类,充当一种穷人的单例。其目的是从应用程序的各个点收集统计信息。对于我们的单元测试,我创建了一个卷影拷贝,可用于获取生产代码中的差异。例子:structProduction{staticComplexClassvalue1;staticComplexClassvalue2;};structProductionShadow{staticComplexClass::ValueTypevalue1;staticComplexClass::ValueTypevalue2;};由于所有成员都是静态的,影子类不能从生产类继承,并且生产类中的属性是具有副作用的复杂对象,我只

c++ - boost::spirit ,如何获取占位符的 "value"

我正在尝试构建一个接受格式为“/integer/(/integer/)”的字符串并生成一个std::tuple的解析器现在我有:qi::rule()>parser=(qi::int_>>'('>>qi::int_>>')')[_val=std::make_tuple(qi::_1,qi::_2)]无法编译,因为占位符qi::_i的类型不正确。如何从占位符中“提取”基础值? 最佳答案 嗯,你可以只使用自动属性传播(又名“自动规则”):#include#include#includenamespaceqi=boost::spirit::

c++ - OpenGL : GLSL float has low precision

我有包含振幅值的浮点alpha纹理。它被转换为分贝并以灰度显示。这是对话代码(C++):constfloatdb_min=-100,db_max=0;floatimage[height][width];for(inty=0;y这是片段着色器(GLSL):#version120precisionhighpfloat;varyingvec2texcoord;uniformsampler2Dtexture;voidmain(){floatvalue=texture2D(texture,texcoord).a;gl_FragColor=vec4(value,value,value,0);}截图

c++ - C++中的评分系统

所以这是我的C++问题:编写一个程序,将字母等级转换为数字等级。字母等级为A、B、C、D和F,可能后跟+或-。它们的数值分别为4、3、2、1和0。没有F+或F-。A+将数值增加0.3,a–将数值减少0.3。但是,A+的值为4.0。输入字母等级:B数值为2.7这是我的代码:intmain(){chargrade;intvalue;cout>grade;switch(grade){case'A':value=4;break;case'B':value=3;break;case'C':value=2;break;case'D':value=1;break;case'E':value=0;br

c++ - 用于测试 func(args) 是否格式正确且具有必需的返回类型的特征

有许多类似的问题/答案,但我无法完全将这些答案放在一起来满足我的目的。我想要一个特质templatestructreturns_a{staticconstboolvalue;};这样returns_a::value如果F(Args)格式正确并返回T,则为真。经过更多研究后,我的工作方式如下://valueistrueifFunc(Args...)iswellformedtemplateclassis_callable{templatestaticdecltype(std::declval()(std::declval()...),void(),0)test(int);templates