草庐IT

EidosValue_Int_vector

全部标签

c++ - C++11 中的 vector <字符> VS vector < bool >

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion我们为什么要使用vector而不是vector?vector是什么原因更快?

c++ - vector 中的模板推导失败

我尝试制作一个通用的叉积函数:templatestd::vectorcross_product(constContainerType1&a,constContainerType2&b){assert((a.size()==3)&&(b.size==3));return{a[1]*b[2]-a[2]-b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]};}这条线std::vectorA=cross_product(p_r2,p_r1);给我错误:error:couldn'tdeducetemplateparameter‘ReturnType’有没有办

c++ - vector.push_back() 崩溃

我在处理类的vector时遇到问题。我已经尝试尽可能地削减代码,留下下面的代码。然而,在这样做之后,我仍然无法弄清楚为什么我的程序会崩溃。我来自VBA的世界,我的C++调试技能至少可以说是很差,我预先为此道歉。任何可以提高我在这里能力的指导都将很乐意接受。我的类(class):classTester{public:intvarA;intvarB;Tester(){varA=1;varB=1;}Tester(Tester&P1,Tester&P2){varA=P1.varA+P2.varA;varB=P1.varB+P2.varB;}Tester(constTester&Source){

c++ - 为什么在达到容量后在 vector 中完成插入时 C++ 不处理迭代器?

我写这段小代码只是为了看看迭代器实际上是如何失效的,并且在达到其容量后不指向vector的更改位置。这里vector和capacity的大小最初都是5。之后,我在vector中插入了一些其他元素,并且没有重新初始化我的迭代器以指向myvector.begin()。当再次打印vector的元素时,这会导致maximumsizeofvectoris:1073741823在我的输出中出现垃圾值49。我的问题是,为什么在所有元素都被复制到新位置后,C++没有再次将点迭代器指向有效的myvector.begin()?这也可能导致一些难以调试的行为。我知道一种安全的工作方式是始终在使用迭代器之前重

c++ - 在文件名中插入 int 变量

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:EasiestwaytoconvertinttostringinC++如何在创建.vtk文件时插入int变量?我想在每k步创建文件。也就是说,应该有一系列文件,从file_no_1.vtk、file_no_2.vtk、...到file_no_49.vtk。while(k

c++ - 将 `std::vector` 替换为 `std::array`

我有一个代码如下:intn;intget_the_number();voidsome_computations();intmain(){n=get_the_number();some_computations()return(0);}get_the_number函数获取一些输入并返回整数n,它在调用后不会被修改。在some_computation函数中有如下代码std::vectormy_array;for(inti=0;i问题:由于my_array的大小是先验已知的,是否可以用替换std::vector>std::array?此外,在肯定的情况下,我是否应该期望在效率方面有所提高?我

c++ - 如何将数字 QString 转换为 int 数组?

我有一个QString,例如包含一系列数字QStringpath="111003320012345549394";我想遍历可变长度的字符串for(inti=0;i并且能够将每个数字作为int单独访问。不过我没能做到。问题:如何将数字的QString转换为int数组?我知道我可以使用path.toInt()将QString转换为int,但这对我没有帮助。首先尝试将其转换为char时出现错误:cannotconvert'constQChartochar'。for(inti=0;imovePlayer(direction);} 最佳答案

c++ - 未解析的外部符号 "private: static int Math::result"

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个答案)关闭8年前。这是我的类定义:#includeusingnamespacestd;classMath{private:staticintresult;public:staticintadd(inta,intb){result=a+b;returnresult;};};这是主要的:#include#include"Amin.cpp"usingnamespacestd;intmain(){Math::add(2

c++ - 从 vector 中删除元素,如果它们也在另一个 vector 中

假设我有一个vectora={"the","of"}和一个vectorb={"oranges","the","of","apples".我想比较两个vector并从a中删除也在b中的元素。这是我想出的:for(inti=0;i但是这个循环并没有删除a中的最后一个元素。奇怪! 最佳答案 问题是,当您删除a的第一个元素时,索引会从0递增到1。在循环的下一次迭代中,vector的大小为1满足外层循环的条件导致它终止。您可以通过简单地使用std::remove_if、std::find和lambda来避免解决此问题可能需要的任何技巧。#in

c++ - 在 vector 之间使用 std::swap 还是 vector::swap?

给定两个std::vectorv1,v2。我想知道使用std::swap(v1,v2)比v1.swap(v2)有什么好处。我已经实现了一个关于性能观点的简单测试代码(我不确定它是否相关):#include#include#include#include#include#defineN100000templatestructTimer{templatestatictypenameTimeT::repexec(Ffunc,Args&&...args){autostart=std::chrono::steady_clock::now();func(std::forward(args)...)