草庐IT

type1Vector

全部标签

c++ - 从不可排序的 vector 中删除重复项

我正在寻找一种从vector中删除重复项的方法(让我们称他为theGreatVector:D)。我不能使用std::sort后跟std::unique,因为无法对我的对象进行排序。theGreatVector包含一些vector(小vector)我为vector重载了==所以我可以使用它我能够在O(n²)内创建一些东西,但我需要时间效率(theGreatVector.size()可以是10⁵或10⁶)现在我得到的是类似的东西(只有当smallOne不在其中时,我才填充我的vector):for(i=0;ismallOne=FindFacets(i)if(smallOnedoesntbe

c++ - iterator_traits<InIter>::value_type 的创建是否会在传递时触发遵从? (异常测试)

我在故意为不特别遵守迭代器的函数抛出异常(出于测试目的)时遇到了麻烦。要了解我在做什么,请带上我的decorator_iterator结构:structdecorated_iterator:boost::iterator_adaptor,BaseIterator,boost::use_default,IteratorTag>{//....private:friendclassboost::iterator_core_access;/*usedtothrowanexceptionupondereference*/typenamebase_type::referencedereferenc

c++ - 在 Visual Studio 2012 中初始化 vector 的静态常量 vector

我正在尝试在VisualStudio2012中创建一个staticconstvectorofconstvectorsofints(必须有更好的方法),但我无法找出正确的语法来初始化它。我相信2012年使用的C++版本不允许初始化器,但我不知道还有什么方法可以完成我想要的。我在2013年尝试了以下方法,它似乎可以编译:.h:staticconststd::vector>PartLibrary;.cpp:conststd::vector>Parts::PartLibrary{std::vector{29434},//1std::vector{26322},//2...}但是,当我在2012

c++ - 从 `std::vector<char>` 内部的位获取整数

我有一个vector我希望能够从vector中的一系列位中获得一个无符号整数。例如而且我似乎无法编写正确的操作来获得所需的输出。我的预期算法是这样的:&第一个字节(0xff>>unusedbitsinbyteontheleft)结果剩下输出字节数*一个字节中的位数|这与最终输出对于每个后续字节:由(bytewidth-index)*bitsperbyte左边|这个字节与最终输出|最终输出的最后一个字节(未移位)>>最终输出由右侧字节中未使用的位数这是我尝试编写的代码,但没有给出正确的结果:#include#include#include#includetemplateclassBitV

c++ - vector 的模式匹配/识别库(如用于图像输入的 OpenCV)

有谁知道一个很好的C++模式匹配/识别库(最好是oss),它能够检测vector列表是箭头还是其他类?我已经知道OpenCV但这意味着用于光栅图形(或者我错过了什么?)...但是我已经有了vector几何并且将它们转换回光栅图形听起来很奇怪再次检测边缘。所以我需要的是一个库,它使用vector列表而不是光栅图形作为输入,并且可以识别vector是否是箭头(与方向无关)并提取箭头的部分(头/尖/尾部等)。有谁知道这样的库或知道在哪里寻找此类问题(算法等)?我尝试改变用户界面的使用方式。我已经尝试过protractor算法并将识别步骤分为不同的部分,例如对于箭头示例:绘制、停止绘制并取结果

c++ - boost::lexical_cast<std::string>(Int_Type) 可以抛出吗?

有没有可能boost::lexical_cast(Int_Type)扔?我唯一能想到的是字符串没有内存的地方,但是还有其他更合理的选择吗? 最佳答案 根据documentation,lexical_cast可以扔bad_lexical_cast.最重要的是,正如您已经提到的,可能存在动态分配,它总是会导致bad_alloc异常。编辑:至于具体情况lexical_cast,除了分配错误之外,链上的任何部分似乎都不太可能失败,但文档并不(据我所知)保证不会出现“错误转换”异常。 关于c++-

c++ - vector 元素是否需要可移动?

我注意到std::vector对其元素类型T的要求从C++03更改为C++0x。T现在不再需要可复制构造,但可移动构造就足够了。即使我们没有潜在的重新分配,T是否也需要它?vector>x(numberElements);我认为这里没有移动的必要。规范怎么说? 最佳答案 根据23.3.6.2[vector.cons]第4段,您使用的构造函数需要DefaultInsertable。由于构造函数不是要求表的构造函数之一也要求CopyInsertable,因此不应该有任何额外的要求。根据23.2.1[container.requireme

带指针的 C++ vector

我被困在家庭作业中。我必须从文件中读取文本,将每个单词分配到内存,然后使用一个指针将其发送到vector.我的程序不断用文件中的新词覆盖vector,而不是仅仅添加它。我不明白为什么会这样。#include#include#include#includeusingnamespacestd;voidWordFunctions(string*pstr,vector&words){words.push_back(pstr);}intmain(){ifstreamfile;vectora;stringword;intw=0;file.open("word.txt");while(!file.e

C++11 : unique_ptr complains about incomplete type, 但是当我包装它时不是

SO上已经有很多关于unique_ptr和不完整类型的问题,但没有一个能给我一个概念来理解为什么以下内容不起作用://error:...std::pair::secondhasincompletetypetemplatestructImpl{typedeftypenamestd::unordered_map>::iteratoriter_type;std::unique_ptrptr;Impl():ptr(newiter_type()){}};intmain(){Impl();return0;}而以下是:templatestructImpl{structWrapper{typedeft

c++ - Type t = Type() 是否调用复制构造函数?

我真的很困惑....Typet=Type()是否调用复制构造函数?我问是因为当我尝试时:#includeclassTest{public:Test(Testconst&){std::cout什么都没有输出,但是当我把它改成#includeclassTest{Test(Testconst&){std::cout我得到:errorC2248:'Test::Test':cannotaccessprivatememberdeclaredinclass'Test'这没有意义(特别是因为这是一个调试版本)。更新:即使这样也可以编译!structTest{Test(Test&&)=delete;Te