草庐IT

EidosValue_Int_vector

全部标签

c++ - 删除 std::vector 的元素(并更改大小)而不影响分配的内存

我正在使用如下代码:constintMY_SIZE=100000;std::vectorv;v.reserve(MY_SIZE);//addnomorethanMY_SIZEelementstothevectorf(v);v.clear();//again,addnomorethanMY_SIZEelementstothevectorf(v);v.clear();////etc...//我的代码的重点是存储MY_SIZEdouble的然后执行操作f(std::vector)在那些元素上。在我填满vector并执行操作后,我想去掉所有元素(并将std::vector::size()重置为

c++ - 在 gdb C++ 中打印双 vector 的总和

在GDB中调试时是否可以打印doublevector的总和?我知道vector的值可以由*(vec._M_impl._M_start)@N打印,但我只想对巨大的数组求和可以做什么?一种解决方案是编写C++函数并在GDB中调用它。还有其他更简单的解决方案吗? 最佳答案 它可以通过gdb脚本完成,但我认为编写c++函数并调用它是更好的解决方案。尽管如此,脚本(通过获取STLsupporttools并对其进行修改而创建)是这样的:definepvecsumset$sum=0set$size=$arg0._M_impl._M_finish-

c++ - `int` 假定在 OpenCV 中始终为 32 位?

似乎在OpenCV中,int数据类型总是假定为32位。这反射(reflect)在文档中(例如,intheintroduction),也反射(reflect)在源代码中(例如,在modules/core/include/opencv2/core/cvdef.h的注释中,以及它将uint定义为32位无符号整数,但没有定义相应的有符号类型这一事实。在int不是32位的系统上,这如何不破坏OpenCV?毕竟,标准只保证int是16位。我希望OpenCV为其使用的所有大小定义数据类型(就像它为int64所做的那样),或者使用uint_8和friend。 最佳答案

c++ - C : x86 Intel Intrinsics usage of _mm_log2_ps() -> error: incompatible type 'int' ?

我正在尝试将log2应用于__m128变量。像这样:#includeintmain(void){__m128two_v={2.0,2.0,2.0,2.0};__m128log2_v=_mm_log2_ps(two_v);//log_2:=log(2)return0;}尝试编译会返回此错误:error:initializing'__m128'withanexpressionofincompatibletype'int'__m128log2_v=_mm_log2_ps(two_v);//log_2:=log(2)^~~~~~~~~~~~~~~~~~~我该如何解决?

c++ - `std::vector` 在调整大小时抛出 "bad allocation"异常

我在C++dll中有以下代码,我通过JNI调用它:std::vectormyVector;myVector.resize(10000000,0);我收到“错误分配”异常,即使vector的最大大小应该大于10000000。我应该使用什么工具来跟踪内存分配,以便定位任何内存泄漏?如果真的没有内存泄漏,我该如何减少vector的占用空间以确保我有足够的空间? 最佳答案 我知道这可能是找出分配大小的最差解决方案。所以这里是:主要.cpp:#include"jni.h"#include#include#if(_MSC_VER==1800)|

c++ - 将 int 数组转换为可变参数模板

假设我有一个像intarr[N]这样的整数数组然后说arr[i]来自一个很小的域(例如1-10)。假设我还有一个具有通用接口(interface)(抽象类)的可变参数模板类templateclassFooImpl:publicFoo{}问题是我如何实现一个功能:Foo*getFoo(intarr[N]);或者更好:Foo*getFoo(int*pint,intsize);这将返回FooImpl模板参数对应我的数组?例如arr={4,2,6,1}我会得到FooImpl 最佳答案 我找到了问题的答案。诀窍在于使用结构可变参数模板而不是我

c++ - 如何在 Xcode 中使用 c++ std::vector 元素类型和值查看?

在visualstudio中,当我使用c++std::vector调试代码时,我可以看到其中的所有元素,甚至可以深入到每个元素,不知何故,在Xcode5.1中,我可以看到这个选项我所看到的只是vector的迭代器。这是我尝试观察vector元素时在Xcode中看到的内容:我怎样才能在调试窗口中看到vector元素。 最佳答案 对我来说(Xcode6.0.1),这只发生在引用(&)类型上。尝试以下操作之一:添加自定义监视表达式*&strLineOfChrsVec(取消引用变量的地址)。进入堆栈并观察您传递给函数的原始变量。

Java中是否有一种干净的方式将int数组的一部分作为字符串输出?

给定一系列int和索引k。任务是输出左移k的数组。例如...a=[1,2,3,4,5],k=4Output:51234在JavaScript中,代码是:varresult=a.slice(d).join('')+''+a.slice(0,d).join('')我真的很努力地在Java找到一个简洁的同等用品。看答案正如您所说,您只需要输出,这将起作用:int[]a=newint[]{1,2,3,4,5};intk=4;for(inti=0;i

c++ vector assign() 方法经常失败

我有一个浮点vector,它在运行时使用assign()方法多次调整大小和清空,但每次我切换到较小的大小时它都会失败并抛出异常Vectorsubscriptoutofrange.声明:std::vectorbuffer;size_tsize,c;设置大小和删除旧内容:voidSetBuffersize(size_tsz){//Resizevector//buffer.resize(sz);//reallynotneeded?//Deleteoldcontentbuffer.assign(sz,0);}有一个正在运行的线程不断访问这个vector:voidProcess(){if(++c

c++ - Opencv,对 `cv::imread(??cv::String const&???, int)' 的 undefined reference

这个问题在这里已经有了答案:error:undefinedreferenceto`cv::imread(std::stringconst&,int)'(4个答案)Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个答案)关闭5年前。我在QT+Opencv中有一个项目,代码可以正常工作,但我必须格式化窗口,现在我试图再次导入该项目,但出现了这个错误。对`cv::imread(cv::Stringconst&,int)'的undefinedreference在这一行中:mat=cv::imre