草庐IT

vector_tostr

全部标签

c++ - 从另一个 vector 类型中包含的组件构建 vector

我有一个看起来像这样的代码:structFirst{intf1;intf2;};structSecond{Firsts1;ints2;};std::vectorsecondVec;Secondsec;sec.s1=First();secondVec.push_back(sec);secondVec.push_back(sec);std::vectorfirstVec;firstVec.reserve(secondVec.size());for(std::vector::iteratorsecIter=secondVec.begin();secIter!==secondVec.end()

c++ - 如何通过 UNIX 套接字发送 std::vector<std::string> ?

对于我的申请,我需要能够发送std::vector通过UNIX套接字(本地),并在套接字的另一端获取vector的拷贝。使用O(1)执行此操作的最简单方法是什么?相对于vector大小的消息(即不为vector中的每个字符串发送消息)?因为这一切都在同一台主机上,并且因为我控制套接字的两端,所以我不关心特定于机器的问题,例如endinness或vector/字符串表示。出于各种原因,我想避免使用任何外部库。 最佳答案 std::string不会阻止您在字符串中包含空值。只有当您尝试将这些与nul敏感API一起使用时,您才会遇到麻烦。

c++ - 使用 STL/Boost 初始化硬编码集<vector<int>>

像这样question已经问过,我想使用STL初始化一个容器,其中元素以最干净的方式进行硬编码。在这种情况下,元素是一个双重嵌套的容器:set>A;我想(例如)将以下值放入:A=[[0,0,1],[0,1,0],[1,0,0],[0,0,0]];C++0x很好,使用g++4.4.1。STL更可取,因为我不对代码的任何其他部分使用Boost(尽管我不介意用它举例!)。 最佳答案 这确实使用了g++4.4.1,带有-std=c++0x#include#includeusingnamespacestd;intmain(){set>A={{

c++ - 对 Vector 的多线程、只读访问。复制还是锁定?

想知道我是否可以了解您对我在这种情况下应该做什么的想法。假设我有4到8个线程,并且我有一个值vector,它永远不会被写入,只能由线程读取。我可以选择为每个线程创建vector的拷贝,然后在线程之间没有线程锁定,尝试访问共享拷贝。或者,我可以锁定vector的一个拷贝并让所有线程访问它。与复制vector相比,线程锁的延迟是多少?vector必须有多大才能使锁的开销比复制vector更快? 最佳答案 如果没有线程写入它,您可以安全地共享它而无需任何锁定或复制。仅当涉及写访问时才会发生数据竞争。

c++ - 使用 C++ 和 STL 的 vector 元素乘积

用C++实现逐元素乘积并不难:vectora_array;vectorb_array;vectorc_array;vectordot_array;....for(inti=0;i这是一个非常简单的实现,我想知道STL中是否已经有更高效的算法。谢谢! 最佳答案 std::transform可用于将两个vector相乘:#include#include//Precondition:b.size()>=a.size()&&r.size()>=a.size()std::transform(a.begin(),a.end(),b.begin(

c++ - 堆栈分配的 vector 如何在 C++ 中展开?

如果我这样声明一个vector:intmain(){vectornames;intsomething_else_on_the_stack=0;names.add("John");names.add("Annie");}您实际上如何能够将元素“添加”到名称vector中?如果名称是堆栈分配的,那么“something_else_on_the_stack”不应该紧跟在堆栈上吗?那么如何将名称添加到已分配的vector中呢? 最佳答案 在内部,一个vector很可能由string*组成指向实际数据,可能还有两个size_t指示占用和保留内

c++ - 我可以使用 std::vector 作为模板参数还是必须是 std::vector<T>?

我知道这是一个简单的问题,但我就是找不到答案。我正在尝试做这样的事情,但最终我希望它是std::shared_ptr或std::weak_ptr而不是std::vector:templateclassBaseChunkWindow:publicIChunkWindow,IChunk>{public:...private:PtrClass>ptr;*works}; 最佳答案 这取决于您将它传递给什么,如果您尝试实例化的模板将接受2个(或在c++11中为可变数量)类型的类模板作为参数,那么您可以传递std::vector到那个。然而,在

c++ - 为什么尽管有一个 int vector ,但结构的大小不变

我定义了一个包含整数vector的结构。然后我在vector中插入10个整数并检查结构的大小。但我看不出有什么不同。这是我的代码:structdata{vectorpoints;}intmain(){datad;cout在这两种情况下,我得到相同的结果:16为什么会这样?struct的大小不应该增长吗? 最佳答案 vector会将其元素存储在动态分配的内存中(在堆上)。在内部,这可能表示为:T*elems;//Pointermemory.size_tcount;//Currentnumberofelements.size_tcapa

c++ - 将 Vector<int> 转换为字符串

这个问题在这里已经有了答案:Convertavectortoastring(25个答案)关闭4年前。我想编写一个程序,首先输入字符串数组,然后将其转换为整数,然后将其推送到一个vector。代码是这样的:stringa;vectorc;cout>a;cout输出:Enterthemessage=hahaConvertedMessagetointeger=1049710497然后我将它写在一个文件中,在下一个程序中我想读回它,并将它转换回字符串,我的问题是如何做到这一点?将vector[1049710497]转换回字符串“haha”。我非常感谢任何帮助。谢谢。

C++ - 比较 vector 的有效方法

目前我正在使用相机检测标记。我使用opencv和ArucoLibary。只是我现在遇到了一个问题。我需要检测2个标记之间的距离是否小于特定值。我有计算距离的功能,我可以比较一切。但我正在寻找最有效的方法来跟踪所有标记(大约5/6)以及它们之间的距离。有一个带有标记的列表,但我找不到比较所有标记的有效方法。我有一个Vector我还有一个名为getDistance的函数。doublegetDistance(cv::Point2fpunt1,cv::Point2fpunt2){floatxd=punt2.x-punt1.x;floatyd=punt2.y-punt1.y;doubleDist