草庐IT

vector_tostr

全部标签

c++ - 在 C++ 中检查 std::vector<string> 是否包含某个值

这个问题在这里已经有了答案:Howtofindoutifanitemispresentinastd::vector?(18个回答)关闭9年前。是否有任何内置函数告诉我我的vector是否包含某个元素例如std::vectorv;v.push_back("abc");v.push_back("xyz");if(v.contains("abc"))//Iamlookingforonesuchfeature,isthereany//suchfunctionorineedtoloopthroughwholevector? 最佳答案 您可以使

c++ - C++11 是否允许 vector<const T>?

容器要求已从C++03更改为C++11。虽然C++03有全面的要求(例如,vector的复制可构造性和可分配性),但C++11对每个容器操作定义了细粒度的要求(第23.2节)。因此,您可以例如只要您只执行某些不需要赋值的操作(构造和push_back就是这样的操作;insert不是)。我想知道的是:这是否意味着标准现在允许vector?我看不出有任何理由不应该-constT,就像具有const成员的结构一样,是一种可复制构造但不可赋值的类型-但我可能遗漏了一些东西。(让我觉得我可能遗漏了一些东西的部分原因是,如果您尝试实例化vector,gcc主干会崩溃并烧毁,但对于T有一个const

c++ - 删除循环内 vector 的元素

我知道有与此类似的问题,但我没有设法在他们的帮助下找到我的代码的方法。我只想通过检查循环内该元素的属性来删除/删除vector的元素。我怎样才能做到这一点?我尝试了以下代码,但收到了模糊的错误消息:'operator='功能在'Player'中不可用。for(vector::iteratorit=allPlayers.begin();it!=allPlayers.end();it++){if(it->getpMoney()我该怎么办?更新:你认为问题vector::erasewithpointermember属于同一个问题吗?因此我需要一个赋值运算符吗?为什么?

c# - 序列化特定类型时如何使 JSON.Net 序列化程序调用 ToString()?

我正在使用Newtonsoft.Json序列化程序将C#类转换为JSON。对于某些类,我不需要序列化器到单个属性的实例,而是只在对象上调用ToString,即publicclassPerson{publicstringFirstName{get;set;}publicstringLastName{get;set;}publicoverridestringToString(){returnstring.Format("{0}{1}",FirstName,LastName);}}我应该怎么做才能将Person对象序列化为ToString()方法的结果?我可能有很多这样的类,所以我不想最终得

java - 如何在 Java 中正确覆盖 toString()?

听起来有点愚蠢,但我的toString()方法需要帮助,这很烦人。我尝试在网上查找,因为toString是它搞砸的地方并且“找不到Kid构造函数#2”,即使它在那里,我什至会做其他事情但它不起作用.好的,这很多,所以这是我的代码:importjava.util.*;classKid{Stringname;doubleheight;GregorianCalendarbDay;publicKid(){this.name="HEAD";this.height=1;this.bDay=newGregorianCalendar(1111,1,1);}publicKid(Stringn,doubl

java - (字符串)还是 .toString()?

我有一个带有Objecto参数的方法。在这个方法中,我完全知道“o”中有一个不为空的String。无需检查或执行其他操作。我必须像对待String对象一样对待它。只是好奇-什么更便宜-将其转换为String,或使用Object.toString()?还是按时间-/cpu-/mem-价格都一样?更新:该方法接受Object因为它是一个接口(interface)的实现。无法更改参数类型。而且它根本不能是null。我只是想说我不需要检查它是否为空或为空。就我而言,总是有一个非空字符串。 最佳答案 转换为字符串更便宜,因为这不需要外部函数调

java - 当 toString() 和 hashCode() 被覆盖时,如何在 java 中获取对象的 "object reference"?

我想在Java中打印对象的“对象引用”以进行调试。IE。根据情况确保对象相同(或不同)。问题是有问题的类继承自另一个类,它覆盖了toString()和hashCode()这通常会给我id。示例情况:运行一个多线程应用程序,我(在开发期间)想检查所有线程是否使用资源对象的同一个实例。 最佳答案 您究竟打算用它做什么(您想要做什么与您需要调用的内容不同)。hashCode,如JavaDocs中所定义,说:Asmuchasisreasonablypractical,thehashCodemethoddefinedbyclassObject

java - IOUtils.toString(InputStream) 的 Guava 等价物

ApacheCommonsIO有一个很好的方便方法IOUtils.toString()将InputStream读取到字符串。因为我正试图从ApacheCommons转移到Guava:Guava有等价物吗?我查看了com.google.common.io包中的所有类,但找不到任何简单的东西。编辑:我理解并理解字符集的问题。碰巧我知道我所有的来源都是ASCII(是的,ASCII,不是ANSI等),所以在这种情况下,编码对我来说不是问题。 最佳答案 您在对Calum的回答的评论中声明您将使用CharStreams.toString(new

java - String.valueOf() 与 Object.toString()

在Java中,String.valueOf(Object)和Object.toString()有什么区别吗?这些是否有特定的代码约定? 最佳答案 根据theJavadocumentation,String.valueOf()返回:iftheargumentisnull,thenastringequalto"null";otherwise,thevalueofobj.toString()isreturned.所以除了额外的方法调用之外应该没有真正的区别。另外,在Object#toString的情况下,如果实例为null,则会抛出Nul

c++ - 结构化绑定(bind)是否适用于 std::vector?

是否可以对vector使用结构化绑定(bind)?例如std::vectorvec{1,2,3};auto[a,b,c]=vec;不幸的是,上面的代码不起作用(在GCC下),但也许有一种不同的方式(使用结构化绑定(bind))允许将vector的前三个值分配给三个变量。 最佳答案 结构化绑定(bind)仅在编译时已知结构的情况下才有效。vector不是这种情况。虽然您确实知道各个元素的结构,但您不知道元素的数量,而这正是您试图在问题中分解的内容。同样,您只能在编译时知道大小的数组类型上使用结构化绑定(bind)。考虑:voidf(s