草庐IT

EidosValue_Int_vector

全部标签

c++ - std::vector.at()。它返回引用或拷贝吗?

我刚开始学习C++,我正在尝试std::vector的工作原理。我有这个测试程序:#include#includeintmain(){std::vectorelement1={1,2,3};std::vectorelement2={4,5,6};std::vector>lista={element1,element2};std::vectorvar=lista.at(0);for(std::vector::const_iteratori=var.begin();i!=var.end();++i)std::cout::const_iteratori=var.begin();i!=var.

C++ 如何将连续的区间插入到 std::vector 中?

假设我希望从23到57的所有数字都在vector中.我可以这样做:vectorresult;for(inti=23;i但这是一个简单工作的5行解决方案。我不能更优雅地做到这一点吗?最好的语法是vectorresult{23..57};例如或这样一个微不足道的一行代码。C++17的任何选项? 最佳答案 您可以使用std::iota(自C++11起)。Fillstherange[first,last)withsequentiallyincreasingvalues,startingwithvalueandrepetitivelyeval

c++ - 我可以强制 std::vector 留下内存泄漏吗?

我可以强制std::vector在vector超出范围后不释放它的内存吗?例如,如果我有int*foo(){std::vectorv(10,1);//trivialvectorreturn&v[0];}intmain(){int*bar=foo();std::cout不保证这些值仍可在此处访问。我目前只是在做这个int*foo(){std::vectorv(10,1);int*w=newint[10];for(inti=0;i但是重新填充一个全新的数组有点浪费。有没有办法强制std::vector不删除它的数组?注意:我没有返回vector本身,因为我正在使用SWIG将c++与pyth

C++ 列表/vector 帮助

我是C++的新手,所以这可能是一个非常简单的问题,但我无法在网上找到任何有用的示例。我已经定义了我自己的Bubble类,我需要创建一个vector/list(我习惯了C#和Java,所以我不确定哪个是正确的)来动态存储Bubble对象。到目前为止,这是我的代码:#include"Bubble.h"#include#includeintbackgroundImages[10];listbubbles;vectorbubbles_two;Bubbleb;voidAppMain(){loadImages();ViewAdd(backgroundImages[8],0,0);b=Bubble(

java - 为什么int 1的最小值比正值更远离零?

我想知道为什么int、double等负值比正值多1。 最佳答案 简而言之:0必须适合某个地方,它在正数中,这使得它们比负数少1。示例:负数有5个槽,正数有5个槽,负数从-1到-5,正数从0到4不要忘记阅读@chris链接:)正如@WhozCraig所指出的,这仅对使用有符号二进制数的二进制补码表示的体系结构有效。 关于java-为什么int1的最小值比正值更远离零?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c++ - 如何从模板参数(std::vector 和普通指针)中提取 value_type?

我有一个带有以下接口(interface)的排序:templatevoidmy_sort(RandomItfirst,RandomItlast){}我希望RandomIt成为std::vector.begin()/end()的迭代器或普通指针类型T*first,T*last.我想如果我假设RandomIt是一个vector,我可以从RandomIt::value_type得到它,但这不适用于T*first,T*last.我的问题是,如何提取value_typeT在这两种情况下都来自模板参数? 最佳答案 使用iterator_trai

c++ - 从类型 'int&' 的临时类型 'int' 的非常量引用的无效初始化

#includeusingnamespacestd;intfun(int&x){returnx;}intmain(){cout任何人都可以解释错误的原因吗?谢谢 最佳答案 10是一个常量,所以您不能传递对它的引用,只是因为更改常量的整个概念很奇怪。引入引用是为了解决C(和更早的C++)中的一个棘手问题,事实上一切都是按值传递的,如果你想将更改反射(reflect)回调用者,你必须传入一个指针并在函数中取消引用该指针以获取实际变量(用于读取和写入它)。在下一个ISOC标准中,这将是非常重要的好东西。虽然必须使用指针可能会让我们中的一些

c++ - 获取 vector 的大小(以字节为单位)

这个问题在这里已经有了答案:sizeof()std::vector(C++)(2个答案)关闭9年前。对于这个可能简单而愚蠢的问题,我深表歉意,但我无法在任何地方找到它。我只是不知道如何获取std::vector的字节大小。std::vectorMyVector;/*Thiswillprint24onmysystem*/std::cout那么我如何获得vector的大小呢?!也许通过将24(vector大小)乘以项目数?

c++ - 方便地将 std::vector<unsigned char> 复制到输入流 (std::istream) 对象

我正在尝试使用第3方库中的函数,并需要一个输入流对象,其中传输二进制文件数据。签名看起来像这样:doSomething(conststd::string&...,conststd::string&...,std::istream&aData,conststd::string&...,conststd::map*...,long...,bool...);由于我无法更改/更改此第3方库/函数,因此我必须适应“我的”代码。在调用位置,我有一个std::vector,它包含预期在istream对象中传递的数据。目前,我通过迭代它并使用我强烈怀疑可能有更有效/更方便的方法,但到目前为止找不到任何

C++ 将 int 和 string 转换为 char*

这有点难,我想不通。我有一个int和一个字符串,我需要将其存储为char*,int必须是十六进制即inta=31;stringstr="anumber";我需要将两者用制表符分开放入一个char*中。输出应该是这样的:1Fanumber 最佳答案 适当包含:#include#include#include像这样:std::ostringstreamoss;oss从以下位置复制结果:oss.str().c_str()请注意c_str的结果是临时的(!)constchar*所以如果你的函数需要char*您将需要在某处分配一个可变拷贝。(