jjzjj

Indexing

全部标签

c++ - 使用 size_t 索引以相反的顺序枚举数组

假设我们需要以相反的顺序打印大小为N的int数组://Wrong,iisunsignedandalways>=0:for(size_ti=N-1;i>=0;--i){cout=0;--i){cout0;--i){cout是否有更好的方法来使用size_t索引进行此类枚举并且无需在循环中进行额外操作?假设(size_t)0-1给出(size_t)(-1)还是未定义是否有效? 最佳答案 您可以将减量移动到条件“之后”。for(size_ti=N;i>0;){--i;cout它不像前向循环那么优雅,但它可以工作。我们在0处中断,所以i永远

c++ - 在 C++ 中模拟 C# 索引器

如您所知,在C#类中,我们可以定义具有多个参数的索引器。但在C++中,运算符[]可以接受一个参数。有没有一种方法可以使用多个参数在C++中编写索引器?C#中的索引器:publicAnyTypethis[arg1,arg2,.....]{get{...};set{...};}[]C++运算符:AnyType&operator[](arg){//ourcode} 最佳答案 您可以返回一个临时文件,它包含第一个索引并引用数据源。private:classBoundArg{private:Data&data;size_ti;public:B

c++ - 不可能的 C++ 数组索引

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:InCarrayswhyisthistrue?a[5]==5[a]Accessingarraysbyindex[array]inCandC++我刚刚发现我的代码中似乎有一个错误,但它不仅可以编译,而且最初也能按预期工作...考虑以下代码片段:#include#includeusingnamespacestd;classWeirdTest{public:intvalue;stringtext;WeirdTest():value(0),text(""){}virtual~WeirdTest(){}voiddoWe

用于负数组索引的 C++ size_t 和 ptrdiff_t

我很难在size_t之间做出选择和ptrdiff_t对于索引的类型,应该需要能够存储负值。准确地说,在我的代码中我需要实现一个数组。我收到它的长度(在构造函数中)作为size_t的类型,当我重载[]operator我需要索引的类型为ptrdiff_t(而不是size_t),因为我想允许负索引,如本例所示:std::size_tlength=50;MyVectorvec(length);vec[0]=10;MyVectorvec2=vec+1;std::cout上述设计引起的问题是可用索引的范围受限于ptrdiff_t的最大值。,在某些机器上,这个上限小于size_t的最大值。即std:

c++ - 使用 SpatialIndex 库为 R* 树选择参数

我正在使用来自http://libspatialindex.github.com/的空间索引库我正在主内存中创建一个R*树:size_tcapacity=10;boolbWriteThrough=false;fileInMem=StorageManager::createNewRandomEvictionsBuffer(*memStorage,capacity,bWriteThrough);doublefillFactor=0.7;size_tindexCapacity=10;size_tleafCapacity=10;size_tdimension=2;RTree::RTreeVar

c++ - 在 C++ 中用字符串索引的整数

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:InCarrayswhyisthistrue?a[5]==5[a]这怎么可能是有效的C++?voidmain(){intx=1["WTF?"];}在VC++10上,此语句编译后在Debug模式下x的值为84。这是怎么回事?

c++ - 使用迭代器获取 vector 的索引

当迭代vector的元素时,最好使用迭代器而不是索引(参见Whyuseiteratorsinsteadofarrayindices?)。std::vectorvec;std::vector::iteratorit;for(it=vec.begin();it!=vec.end();++it){//dowork}但是,可能需要在循环体中使用索引。考虑到性能和灵active/可扩展性,在这种情况下,以下哪项更可取?回到索引循环std::vectorvec;size_ti;for(i=0;i计算偏移量std::vectorvec;std::vector::iteratorit;for(it=v

c++ - C - 枚举索引数组的优点/缺点

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。根据我的经验,现实世界很少提供非负整数的索引。许多事情甚至没有用数字表示。许多用数字表示索引的东西的索引不是从0开始的。那为什么我们仍然局限于整数索引数组?也许我错了,但枚举索引数组似乎通常比数字索引数组更合适(因为枚举通常更准确,是“真实世界”的表示形式)。虽然枚举通常可以相对容易地转换为C风格的数组索引......enumWeekday={SUNDA

c++ - 如何为我的图形提供 vertex_index 属性

由于我的图使用setS作为顶点,我必须为我的图提供一个vertex_index属性映射,或者为write_graphviz提供一个明确的vertex_id参数,以便能够使用write_graphviz。Mygraphisdefinedas:typedefadjacency_listGraph;其中NodeData和EdgeData是结构体。您能否给我一个非常简单的示例,说明如何为我的图形提供vertex_index属性映射?或者如何给write_graphviz一个显式的vertex_id参数?谢谢 最佳答案 解决方法就是:1)假设

C++按值获取数组元素的索引

到目前为止,我一直将数组存储在一个vector中,然后遍历该vector以找到匹配的元素,然后返回索引。在C++中有更快的方法吗?我用来存储数组的STL结构对我来说并不重要(它不一定是vector)。我的数组也是唯一的(没有重复元素)和有序的(例如,时间向前的日期列表)。 最佳答案 由于元素已排序,您可以使用二进制搜索来查找匹配的元素。C++标准库有一个可用于此目的的std::lower_bound算法。为了清晰和简单起见,我建议将其包装在您自己的二进制搜索算法中:///Performsabinarysearchforaneleme