草庐IT

vector_tostr

全部标签

c++ - 什么库可用于将位图转换为 vector ?

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describetheproblem以及到目前为止为解决这个问题所做的工作。关闭8年前。Improvethisquestion我目前的项目与位图到vector有关。到目前为止,我找到了这些库:potrace(+)非常适合线跟踪(+)文档(-)不支持图片渐变ardeco(+)支持颜色渐变(+)文档(-)线描记不如potrace(-)过时(2006)raste

c++ - 错误 : implicitly deleted because the default definition would be ill-formed (vector of structs)

我无法编译我的C++程序。非常感谢有关此错误的一些帮助。在头文件中,我有这个:structworkerT{workerT():status(true),threadSem(0){}boolstatus;std::functionfunc;semaphorethreadSem;};std::vectorworkers;在我的.cc文件中,我尝试像这样初始化该vector:fill(workers.begin(),workers.end(),workerT());这失败并出现以下错误:错误:'TP::workerT&TP::workerT::operator=(constTP::worke

c++ - vector::clear 的复杂性是否未指定?

根据Is`std::vector::clear()`aconstanttimeoperation?的讨论,注意到C++标准似乎没有指定vector::clear的运行时间。它指定list::clear(线性;§23.3.5.4.5)、.clear的运行时间,用于有序(表102)和无序关联容器(表103)(均为线性)。但是,似乎缺少vector::clear(尽管其他vector成员,例如.data和.swap似乎具有特定的复杂性)。真的没有具体说明,还是我遗漏了什么? 最佳答案 Isitreallyunspecified,ordid

c++ - std::vector::push_back() 不能在 MSVC 上为具有已删除移动构造函数的对象编译

我有一个带有已删除移动构造函数的类,当我尝试在MSVC(v.15.8.7VisualC++2017)中调用std::vector::push_back()时,我收到一条错误消息,提示我正在尝试访问已删除的移动构造函数。但是,如果我定义了移动构造函数,则代码会编译,但永远不会调用移动构造函数。两个版本都可以在gcc(v.5.4)上按预期编译和运行。这是一个简化的例子:#include#includestructA{public:A(){std::coutv{};Aa;v.push_back(a);}在VisualStudio上编译时会出现以下错误:errorC2280:'A::A(A&&

c++ - std::vector<uint8_t> 在启用 C++11/14 时手动复制而不是调用 memcpy

使用gcc4.9,使用Linaro工具链交叉编译ARM,我找到了vector.assign()的编译结果添加-std=c++14时的变化,在某种程度上会产生严重的性能问题。我已经尝试了几种不同的方法来进行这种分配+复制,但是只要我使用std::vector,它们都会有这个性能问题。去做吧。我可以用这个玩具示例重现问题:VectorTest.h#include#include#includestructVectorWrapper_t{VectorWrapper_t(uint8_tconst*pData,size_tlength);std::vectordata;};VectorTest.

c++ - 如何在 Eigen 中将行 vector 转换为列 vector ?

documentation说:...inEigen,vectorsarejustaspecialcaseofmatrices,witheither1rowor1column.Thecasewheretheyhave1columnisthemostcommon;suchvectorsarecalledcolumn-vectors,oftenabbreviatedasjustvectors.Intheothercasewheretheyhave1row,theyarecalledrow-vectors.但是这个程序输出的结果不直观:#include#includetypedefEigen:

c++ - 相互依赖的 C++ 类,由 std::vector 持有

我很好奇是否可以创建两个类,每个类都有一个std::vector的另一个。我的第一个猜测是这是不可能的,因为std::vector需要一个完整的类型,而不仅仅是一个前向声明。#includeclassB;classA{std::vectorb;};classB{std::vectora;};我认为std::vector的声明会导致立即失败,因为B此时有一个不完整的类型。但是,这在gcc和clang下都能成功编译,没有任何警告。为什么这不会导致错误? 最佳答案 T.C评论说,这实际上是未定义的行为,正在对标准的更改请求中解决。违反的规

c++ - std::list 是否有等效于 vector::reserve() 的方法?

我有一个如下所示的类(class):typedefstd::listPtrList;classFoo{public:voidDoStuff();private:PtrListm_list;PtrList::iteratorm_it;};DoStuff()函数基本上将元素添加到m_list或从中删除元素,找到其中某个特殊元素的迭代器并将其存储在m_it。需要注意的是,m_it的每个值都会在DoStuff()的每个后续调用中使用。那么问题出在哪里?一切正常,除了分析显示由于从DoStuff()调用的list::push_back()调用了过多的操作符new。为了提高性能,我想在Foo的初始

c++ - vector 重新分配使用复制而不是 move 构造函数

您好,我使用gcc4.7创建了一个带有noexceptmove构造函数的类Foo,并将vector保留大小设置为2,以便在添加第三个项目时它必须重新分配大小。执行此操作时,它似乎调用了复制构造函数而不是move构造函数。我在这里遗漏了什么吗?#include#includeclassFoo{public:Foo(intx):data_(x){std::coutv;v.reserve(2);v.emplace_back(1);std::cout输出:constructingAdded1constructingAdded2constructingCopyconstructingCopyco

c++ - basic_string::_M_construct null 在构造字符串的子 vector 后无效

我的代码应该读入一个文本文件,并让多个线程通过不同的行block来查找最长的回文。block的大小(多少行)由作为参数传入的可变数量的线程决定。原始文本文件存储在std::vector中,其中vector的每个索引对应于原始文件。当我将子vectorblock传递给findPalindome()时,我得到一个“C++basic_string::_M_constructnullnotvalid”,我不知道为什么。我的字符串都不应该为NULL。当我传递原始vector线时,我没有收到任何错误,所以我假设它与我创建子vector的方式有关。这是我的代码:ResultlongestPalind