草庐IT

vector_tostr

全部标签

c++ - 从 vector C++ 中的元素中减去值

我有两个带有值的vector2.123,2.111,9.2221.22,4.33,2.113我想将每个Vector的第一个元素相互减去,每个Vector的第二个元素和第三个元素相减。所以abs(2.123-1.22)abs(2.111-4.33)abs(9.222-2.113)我很确定您必须创建一个for循环,但我不确定如何解决这个问题,因为我是C++的新手。谢谢大家的帮助。下面的代码是我所拥有的一般概念std::vectordata1,vectordata2,vectorresult;std::cout>data1;std::cout>data2;for(inti=0;i

c++ - 查找 vector 中元素所有出现的索引

假设我有一个vectorA={101100010}。现在我想获取所有出现的0的索引作为另一个vectorB返回。templatestd::vectorIndicesOf(InputItfirst,InputItlast,constT&value){}这是一个开始:std::vector::iteratoriter=std::find_if(A.begin(),A.end(),0);B=std::distance(A.begin(),iter); 最佳答案 只需再次调用std::find_if,以先前返回的迭代器(加一)作为开始。循环

c++ - Vector在C++中的实现

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我最近写了一个STLVector的实现作为编程练习。该程序编译但我收到一个奇怪的错误说:terminatecalledafterthrowinganinstanceof'std::bad_alloc'what():std::bad_alloc我以前从未遇到过这个错误,我不确定在我的实现中到底应该更改什么才能使其正常运行。有人可以看一下我的代码,看看在这种

c++ - const char * 对 vector<unsigned char> 的初始化

我知道在使用C++和STL时,使用vector是存储二进制数据的好方法。但是,对于我的单元测试,我想使用constchar*C字符串变量来初始化vector。我正在尝试使用此处找到的代码变体-Converting(void*)tostd::vector-这样做:constchar*testdata="thequickbrownfoxjumpsoverthelazydog.";unsignedchar*buffer=(unsignedchar*)testdata;typedefvectorbufferType;bufferType::size_typesize=strlen((const

c++ - 初始化 std::string 的 std::vector

在使用一些遗留代码的项目中工作时,我发现了这个函数:std::vectorObject::getTypes(){staticstd::stringtypes[]={"type1","type2","type3"};returnstd::vector(types,types+2);}我可能会这样写:std::vectorObject::getTypes(){std::vectortypes;types.push_back("type1");types.push_back("type2");types.push_back("type3");returntypes;}这仅仅是一种样式选择还是

c++ - 创建局部结构的 std::vector 时出错

#includeintmain(){structst{inta;};std::vectorv;for(std::vector::size_typei=0;i以上代码在使用GNUg++编译器编译时会出现以下错误。test.cpp:Infunction‘intmain()’:test.cpp:6:19:error:templateargumentfor‘templateclassstd::allocator’useslocaltype‘main()::st’test.cpp:6:19:error:tryingtoinstantiate‘templateclassstd::allocator

c++ - std::vector:连续数据和复制/移动

我对下面的代码有两个问题:1)faces的元素是否是连续的?2)std::vector插入时是否复制或移动Facef?#includeintmain(){structFace{};std::vectorfaces;for(inti=0;i 最佳答案 根据标准§23.3.6.1类模板vector概述[vector.overview]:Theelementsofavectorarestoredcontiguously,meaningthatifvisavectorwhereTissometypeotherthanbool,thenito

c++ - 为什么 gcc 生成一个 memmove 而不是 memcpy 来复制 std::vector<>?

在gcc5.3中,以下示例中的两个函数都会生成对memmove的调用。生成memcpy会不会不合适?#includeintblackhole(conststd::vector&);intcopy_vec1(conststd::vector&v1){conststd::vectorv2{v1.begin(),v1.end()};returnblackhole(v2);}intcopy_vec2(conststd::vector&v1){constautov2=v1;returnblackhole(v2);}Exampleongodbolt. 最佳答案

c++ - 将子 vector 合并/展平为单个 vector c++(将 2d 转换为 1d)

这个问题在这里已经有了答案:Genericfunctiontoflattenacontainerofcontainers(2个答案)关闭9年前。我有vector>Y.我想将Y内的子vector(称为y)合并为一个vector.但我不想对它们进行排序,即按它们出现的顺序合并它们。我将如何有效地做到这一点,也许通过使用STL算法?std::merge方法通过我不想要的排序合并。编辑:我想要的是:给定{{1,6,5},{5,3-1,77},{0},...}返回{1,6,5,5,3,-1,77,0,...

angular - 从函数返回 vector 作为自动

是否可以将std::vector返回为auto?例如:autoretVec(){std::vectorvec_l;l.push_back(1);l.push_back(2);returnvec_l;}...autoret_vec=retVec();for(auto&it:ret_vec){}当我写这样的东西时,我得到一个错误:错误:在扣除auto之前使用autoretVec()--->autoret_vec=retVec(**)**;错误:无法从ret_vec推断出auto&&--->for(autoit:**ret_vec**){我该如何写这个?更新:对不起。我在类里面使用这个ret