草庐IT

vector_tostr

全部标签

c++ - 如何检查一个 vector 是否是另一个 vector 的子集?

目前,我认为我最好的选择是使用std::set_intersection,然后检查较小输入的大小是否与set_intersection填充的元素数相同。有没有更好的解决方案? 最佳答案 试试这个:if(std::includes(set_one.begin(),set_one.end(),set_two.begin(),set_two.end())){//...}关于includes().Theincludes()algorithmcomparestwosortedsequencesandreturnstrueifeveryelem

c++ - 使用 bool 值 vector 是否比动态位集慢?

使用bool值vector是否比动态位集慢?我刚刚听说了boost的动态位集,我想知道它是否值得麻烦。我可以只使用bool值vector吗? 最佳答案 这很大程度上取决于您使用的bool值的数量。bitset和vector通常都使用打包表示,其中bool值仅存储为单个位。一方面,这会以位操作的形式施加一些开销来访问单个值。另一方面,这也意味着更多bool值将适合您的缓存。如果您使用大量bool值(例如,实现埃拉托色尼筛),将更多的bool值放入缓存中几乎总能获得净yield。内存使用量的减少将比位操作损失更多。反对std::vect

c++ - 按字符串对 std::vector<std::pair<std::string,bool>> 进行排序?

我如何通过比较pair.first这是一个std::string来对这个vector进行排序?(不提供静态比较功能,也不使用boost)。 最佳答案 std::vector>v;std::sort(v.begin(),v.end());std::pair过载operator首先按first排序元素然后由second元素。因此,如果您只是对vector进行排序使用默认排序顺序(operator),您将获得所需的顺序。 关于c++-按字符串对std::vector>进行排序?,我们在Stac

c++ - STL vector 与 map 删除

在STL中,几乎所有容器都有删除功能。我的问题是在vector中,删除函数返回一个指向vector中下一个元素的迭代器。map容器不这样做。相反,它返回一个void。有人知道为什么会出现这种不一致吗? 最佳答案 见http://www.sgi.com/tech/stl/Map.htmlMaphastheimportantpropertythatinsertinganewelementintoamapdoesnotinvalidateiteratorsthatpointtoexistingelements.Erasinganeleme

c++ - 如何将 STL vector 中的一系列元素设置为特定值?

我有一个boolvector。我需要将其元素从第n次到第m次设置为true.有没有不使用循环的优雅方法?编辑:感谢所有指出使用vector问题的人.不过,我一直在寻找更通用的解决方案,比如jalf给出的解决方案。 最佳答案 algorithmheader中的std::fill或std::fill_n应该可以解决问题。//setmelements,startingfrommyvec.begin()+ntotruestd::fill_n(myvec.begin()+n,m,true);//setallelementsbetweenmyv

c# - 包装包含 vector 的模板类时如何让 SWIG 应用模板?

我正在尝试使用SWIG包装(在C#中)一些包含模板类的c++代码,该模板类本身包装了std::vector.我在互联网上看到了有关如何为vector类型声明模板的各种引用资料,但无法使其与额外的抽象层一起使用。这就是我在interface.i文件中所做的,例如://interface.ifile%modulemyNamespaceWrapper%{#include"myVector.h"%}%include"myVector.h"%include"std_string.i"%include"std_vector.i"namespacestd{%template(vector_MyTyp

c++ - 各种 boost ublas 稀疏 vector 之间有什么区别?

在boost::numeric::ublas中,有threesparsevectortypes.我可以看到mapped_vector本质上是一个从索引到值的STL::map,它将所有未找到的值都视为0(或任何共同值(value))。但是关于compressed_vector和coordinate_vector的信息的文档很少(哈哈)。有人能解释一下吗?我试图弄清楚将项目添加到各种vector的算法复杂性,以及两个这样的vector之间的点积。提供了一个非常有用的答案,compressed_vector与compressed_matrix非常相似.但似乎,例如,compressedrow

c++ - std::vector 的 std::lower_bound 比 std::map::find 慢

我编写了一个类来充当顺序容器(std::vector/std::queue/std::list)的包装器,以具有std::map的接口(interface),用于使用少量小对象时的性能。考虑到已经存在的算法,编码非常简单。这段代码显然是高度从我的完整代码中删减的,但显示了问题。template,classundertype_=std::vector>>classassociative{public:typedeftraits_key_compare;typedefkey_key_type;typedefmapped_mapped_type;typedefstd::pairvalue_t

c++ - 如何最好地将 std::vector < std::string > 容器写入 HDF5 数据集?

给定一个字符串vector,将它们写入HDF5数据集的最佳方法是什么?目前我正在做类似以下的事情:constunsignedintMaxStrLength=512;structTempContainer{charstring[MaxStrLength];};voidwriteVector(hid_tgroup,std::vectorconst&v){////Firstlycopythecontentsofthevectorintoatemporarycontainerstd::vectortc;for(std::vector::const_iteratori=v.begin(),end

c++ - 为什么指针 vector 不能转换为 const 指针的 const vector ?

类型vector不能转换为constvector.例如,以下给出编译错误:#includeusingnamespacestd;voidfn(constvectorcvcc){}intmain(){vectorvc=vector();fn(vc);}我明白为什么vector不能转换为vector-constchar*类型的额外成员可以添加到vector中,之后它们可以作为非常量访问。但是,如果vector本身是const,则不会发生这种情况。我最好的猜测是这将是无害的,但编译器无法推断这是无害的。如何解决这个问题?这个问题是由C++FQAhere提出的。. 最