草庐IT

Vector2D

全部标签

c++ - 从其他 vector 创建新 vector ,仅使用重复项

假设我有一组vector:std::vectora={2,3,8,4,9,0,6,10,5,7,1};std::vectorb={6,10,8,2,4,0};std::vectorc={0,1,2,4,5,8};我想创建一个新vector,这样只有所有输入vector共有的元素才会被输入到新vector中,如下所示:std::vectorabc={8,2,0,8};//possibleoutput,orderdoesn'tmatter我看到很多关于如何删除重复项的问题,但我希望保留仅重复项。是否有现成的高效STL算法或构造可以为我执行此操作,还是我需要自己编写?

c++ - 模板 vector 的 vector

我想创建一个vector的vector,其中各个vector可以是不同的类型,如下所示:std::vectorv1;std::vectorv2;std::vectorv3;std::vectorall;all.push_back(v1);all.push_back(v2);all.push_back(v3);在这种情况下,SomeType应该是什么?我的实际用例:我有不同数据类型的vector需要写入磁盘。每次我向数据集添加一列时,我都不想在不同的地方指定该列。我希望能够轻松地遍历列。 最佳答案 有很多方法可以做到这一点,具体取决于

c++ - 我可以在 vector 上创建 View 吗?

我有一个函数需要对给定的元素进行排序。不得更改原始vector,因此我需要该vector的浅表拷贝。因为我不需要自己复制元素,因为它们只被读取,所以我决定制作一个指针vector。目前我有一个简单的循环填充vector,但我想知道是否存在甚至可能更快的内置/标准解决方案。voidcalcFindMinLeftAndSort(std::vector&locationsComplete,std::vector&locationsSorted){//...//copydatainnewarray,tokeeptheoriginaluntouchedlocationsSorted.reserv

c++ - 如何在 C++ 中使用嵌套 vector ?

我正在尝试为我正在编写的数独解谜器使用整数vector的vector。问题1:如果我要通过索引访问我的二维vector,我是否必须先用适当的大小初始化它?例如:typedefvector>array2d_t;voidreadAPuzzle(array2d_tgrid){for(inti=0;i>grid[i][j];return;}intmain(){array2d_tgrid;readAPuzzle(grid);}会出现段错误。我认为这是因为它正在尝试访问尚未初始化的网格元素?我用以下代码替换了网格的声明行:array2d_tgrid(9,vector(9,0));这似乎消除了这个段

c++ - 如何从 2D 纹理中成功读取

我怎样才能:将cudaMallocPitch浮点内存绑定(bind)到2D纹理引用复制一些主机数据到设备上的二维数组将一个添加到纹理引用并写入a.)Pitch二维数组或b.)写入线性内存数组读回答案并展示。下面是一个应该完成这个的代码。请注意,对于NxN数组大小,我的代码有效。对于NxM,其中N!=M,我的代码基本没问题(不是正确的结果)。如果你能解决这个问题,我将奖励你1个互联网(数量有限)。也许我疯了,但根据文档,这应该有效(而且它确实适用于方阵!)。附加代码应使用“nvccwhateveryoucallit.cu-orunit”运行。感谢您的帮助!#include#include

c++ - 读取 vector 时出现段错误

在C++程序中,当我想读取大小为2697806的vector时,总是会出现Segmentationfault错误。我已经尝试了所有可能的阅读方式:voidAUROC(vectorv){...for(std::vector::size_typei=0;i!=v.size();i++)if(v[i]>0)++pos;else++neg;for(std::vector::size_typei=0;i!=v.size();i++)if(v[i]>0)++pos;else++neg;for(vector::iteratori=v.begin();i!=v.end();++i)if(*i>0)++

c++ - 全高清 2D 纹理内存 OpenGL

我正在为一家艺术家公司编写具有全高清功能的2D引擎,该引擎有望跨平台并使用OpenGL和C++编写。我遇到的主要问题是如何处理所有这些高清Sprite。艺术家以24fps的速度绘制图形,并将它们导出为png序列。我已将它们转换为DDS(不理想,因为它需要加载directxheader)DXT5,这大大减少了文件大小。游戏中的某些场景一次可以有5或6个动画Sprite,这些Sprite可以每个包含200多帧。目前我正在将Sprite加载到一个指针数组中,但这加载时间太长,即使使用压缩纹理也是如此,并且使用相当多的内存(完整场景大约500mb)。所以我的问题是,对于如何处理如此大量的帧,您

c++ - Cython vector 操作

我如何使用remove来自的函数?(或任何其他操作,我想将其与vector一起使用,我尝试使用cdefextern来声明它,但我认为还没有模板函数) 最佳答案 Cython只能合理地链接到一些遵循C调用约定的外部库中的已编译代码。要使用模板函数,您必须编写一个使用特定算法体现的extern"C"包装函数(即,您必须修复模板参数)。 关于c++-Cythonvector操作,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - 将 vector 作为参数传递并使用它,为什么会崩溃?

我是C++的新手,尤其是STL。我试图将vector作为参数传递给函数,但它会导致应用程序崩溃。我正在使用Code::Blocks和MingW。这是一个简单的代码。#include#includeusingnamespacestd;voidfoo(constvector&v){coutv;v[0]=25;foo(v);return0;}谢谢! 最佳答案 它崩溃是因为您使用v[0]写入了vector的末尾-这是未定义的行为。如果您什么都不做,它的初始大小为0。(您随后也阅读了相同的内容,但在那之前所有的赌注都已关闭)。你可能想做:ve

c++ - 如何正确(但有效地)实现类似 "vector::insert"的东西? (指针别名)

考虑vector的这个假设实现:template//ignoretheallocatorstructvector{typedefT*iterator;typedefconstT*const_iterator;templatevoidinsert(iteratorwhere,Itbegin,Itend){...}...}问题我们在这里面临一个微妙的问题:begin和end有可能引用同一vector中的项目,afterwhere。例如,如果用户说:vectoritems;for(inti=0;i如果It不是指针类型,那么我们没问题。但是我们不知道,所以我们必须检查[begin,end)没有