草庐IT

EidosValue_Int_vector

全部标签

c# - memcpy array 到 int 的 C# 等价物是什么?

编辑:我认为这个问题与潜在的重复问题不同,因为那个问题的答案都不包含我使用的方法,即BitConverter类。如果我将其标记为不重复,则删除潜在的重复问题链接hereitis.我想知道这段代码的C#等价物是什么考虑到数组中的每个元素都是一个字节并且它被复制到一个int。byteoffsetdata[sizeof(int)]={0,0,0,0};offsetdata[0]=m_Response[responseIndex++];offsetdata[1]=m_Response[responseIndex++];offsetdata[2]=m_Response[responseIndex

c++ - 是否可以重载模板函数以与 std::vector 的元素一起使用?

我正在尝试让一个函数采用通用std::vector(templatestd::vector,然后调用一个模板函数,该函数在其所有元素上都具有针对特定(抽象)类型的特化。我正在尝试弄清楚如何使用专用版本,同时仍然能够使用通用版本,但我没有成功。我使用的是visualstudio2019。这是我的代码:#include#include//theabstracttypestructFoo{virtualintbar(unsignedint)const=0;};//The'templatefunction'Imentionedtemplatevoiddo_something_with_an_e

c++ - 返回 std::vector 时缺少元素

我正在用C++编写一个函数,从理论上讲,它应该接受用户输入并将此输入根据空格拼接成段,然后将这些段作为vector返回。我目前正在做的是在输入字符串上使用strtok()以用空格分隔单词。对于每个“单词”,我将其插入缓冲区vector。遍历每个单词后,我返回vector。所以这是我到目前为止的代码:#include#include#include#includestd::vectortokenize(std::stringinput_,charconst*delims="\t\r\n\a"){char*input=(char*)input_.c_str();std::vectortk_

c++ - 2 成员结构是否可以安全地替代位压缩 int?

我有一些现有的C++代码可以通过网络发送和接收uint32_t数组。由于我的协议(protocol)发生了变化,我想用一对两个uint16_t替换这个数组中的每个条目,如果可能的话,我想这样做而不改变我发送的位数网络。将两个uint16_t值组合成单个32位宽值的一种明显方法是将低级位打包到uint32_t中,并保持数组定义不变.所以发件人的代码看起来像这样:uint32_titems[ARR_SIZE];for(std::size_ti=0;i(static_cast(field2)(field1));}接收方的代码如下所示://receiveitemsfor(std::size_t

c++ - 将 std::map<int, std::shared_ptr<Base>> 转换为 std::map<int, std::shared_ptr<Derived>> 的最有效安全方法

我们目前存储了几个不同的数据模型集合,如下所示:std::map>>models;字符串映射到一个已知的类型列表,这都是通过序列化处理的。嵌套映射包含“对象ID”和关联(反序列化)std::shared_ptr的集合DataObject是一个基类,我们从中派生出多种类型。我们有一个方法来获取给定类型的所有数据对象:staticstd::map>*getAll(std::stringtype);这只是在给定的“类型”键处返回指向map的指针。今天我遇到了一个代码审查来添加我认为调用UB但似乎起作用的以下内容。这让我有点紧张并寻找有效的解决方案:templatestaticstd::map

c++ - Boost phoenix 或 lambda 库问题:从 std::vector 中删除元素

我最近遇到了一个问题,我认为boost::lambda或boost::phoenix可以帮助解决,但我无法获得正确的语法,所以我采用了另一种方式。我想做的是删除“字符串”中小于特定长度且不在另一个容器中的所有元素。这是我的第一次尝试:std::vectorstrings=getstrings();std::setothers=getothers();strings.erase(std::remove_if(strings.begin(),strings.end(),(_1.length()我最终是这样做的:structDiscard{booloperator()(std::set&co

c++ - 使用 STL/Boost 查找和修改 vector 中的匹配元素

假设我有一个这样声明的vector:structMYSTRUCT{floata;floatb;};std::vectorv;现在,我想找到v中共享相同a的所有元素,然后对它们的b进行平均,即假设v包含这五个元素{a,b}:{1,1},{1,2},{2,1},{1,3},{2,2}我想得到v[0]、v[1]、v[3](其中a为1)和平均值b:(1+2+3)/3=2,以及v[2]和v[4](其中a为2)和平均b:(1+2)/2=1.5之后v将如下所示:{1,2},{1,2},{2,1.5},{1,2},{2,1.5}我不太熟悉STL或Boost,所以我只能弄清楚如何在C++中以“暴力”方式

c++ - 通过 boost::bind 从 vector 中删除字符串

我正在尝试从vector中删除短字符串。std::vectorvec;//...vec.erase(std::remove_if(vec.begin(),vec.end(),boost::bind(std::less(),boost::bind(&std::string::length,_1),5),vec.end());编译器吐出一条非常大的错误信息:qwer.cpp:20:error:nomatchingfunctionforcallto'remove_if(__gnu_cxx::__normal_iterator,std::allocator>*,std::vector,std:

c++ - 跨 VS 项目的 STL vector 损坏

我有一个VisualStudio2005解决方案,其中包含几个相互独立构建的项目。主项目静态链接其他项目。我在其中一个静态链接库中遇到非常奇怪的STLvector损坏。例如,我声明了一个std::vector然后执行了一个sort(thatVector.begin(),thatVector.end()),但是当我调试它并查看反汇编时,我看到了这个:std::vector,std::allocator>>::begin非常奇怪的是SomeOtherClass和SomeOtherTemplate是在主项目中声明的,所以这个库应该完全不知道它们。我试过卡住所有其他线程,认为其中一个可能正在破

c++ - 为什么这个 EXC_BAD_ACCESS 发生在 long long 而不是 int 上?

我遇到了一个EXC_BAD_ACCESS,其中包含一段处理数据序列化的代码。该代码仅在设备(iPhone)上失败,在模拟器上不会。它还仅在某些数据类型上失败。这是重现问题的测试代码:templatevoidtest_alignment(){//allocatememoryandrecordtheoriginaladdressunsignedchar*origin;unsignedchar*tmp=(unsignedchar*)malloc(sizeof(unsignedshort)+sizeof(T));origin=tmp;//pushdatawithsizeof2bytes*((u