草庐IT

vector_tostr

全部标签

c++ - 当 vector<int> 长度增加时,如何设置断点?

我有一个空的vector,某处有东西填充它,但我找不到它。我想设置一个内存断点,这样当push_back发生时程序就会中断。我使用的是VisualStudio2008,问题是vector没有在监window口中显示其内部成员(它似乎具有自定义格式)。它看起来像这样:myVector[0]()std::vector>指示尺寸0。有什么提示吗? 最佳答案 此答案适用于VS2010-其他版本的细节可能有所不同。由于调试器使用数据可视化工具(或任何它的名字)来显示std::vector的状态,你必须查看header以确定类的实际成员的名称以

c++ - 如何在方法中设置 vector 的默认值

我有一个场景,我需要将一个vector作为输入/输出[引用]参数添加到现有的遗留代码中。为了避免任何错误,我需要将其设为默认参数。有人可以建议如何将vector作为默认参数添加到方法中吗?如果这可能的话,我实际上很怀疑。另外,如果可能的话,应该用什么值初始化vector? 最佳答案 我建议重载该方法:voidfoo(doubleotherParameter);voidfoo(doubleotherParameter,std::vector&vector);inlinevoidfoo(doubleotherParameter){std

c++ - 用许多 block 实现的 vector ,没有调整大小的拷贝

我想知道是否有可能实现一个类似STL的vector,其中存储以block为单位,而不是分配一个更大的block并从原始block复制,您可以将不同的block放在不同的地方,并重载operator[]和迭代器的operator++,这​​样vector的用户就不知道这些block是不连续的。这可以在超出现有容量时保存一份拷贝。 最佳答案 你会寻找std::deque参见GotW#54UsingVectorandDequeInMostCases,PreferUsingdeque(Controversial)包含展示行为的基准最新的C+

用于数组、 vector 、内置类型、STL 的 C++ 模板函数

我想创建一个类,该类具有将发送给它的数据保存到文本文件的功能。可以传递给它的数据可以是std::string之类的任何东西。,int,double,float,unsignedint等,也可以是:std::vector,T[],和std::vector>,T[][].现在,很明显,如果它是一个数组,我将需要遍历它以将数据发送到文本文件。我在考虑使用模板,但我不确定如何使用数组。这是要走的路吗?classCMyClass{templatevoidSaveData(Tdata);voidSaveData(std::vectordata);voidSaveData(std::stringda

c++ - std::vector 与普通数组

我正在创建一个需要超快的程序。它使用CUDA在GPU上运行一些东西,然后在CPU上进行一些计算。为此,我需要将高度优化的GPU数据结构转换为可以在CPU上轻松使用的数据结构。我的数据基本上是一个布置在网格中的图表。目前我在CPU部分使用std::vector。因为我知道如果我执行大量push_back()会产生相当大的开销,而且我至少知道因为我知道我的图中有多少个顶点,所以我现在为此使用以下代码:new_graph.resize(blockSize*blockSize);for(unsignedlonglongy=0;y然后我添加边。不幸的是,我不知道每个顶点有多少条边,但我知道它永远

c++ - vector 、 move 语义、nothrow 和 g++ 4.7

我编写了以下代码来理解move语义。它在g++-4.6中按预期工作(即没有复制,只move),但在g++-4.7.0中没有。我认为这是g++-4.7.0中链接的错误,但这个link说这不是g++-4.7中的错误。因此,正如我从上面的链接中理解的那样,我使move构造函数不抛出,但它仍然只执行复制。但是,如果我不抛出复制构造函数,则只会发生move。谁能解释一下?#include#includeusingnamespacestd;structS{intv;staticintccount,mcount;S(){}//nothrowconstructor//S(nothrow)(constS

c++ - 大 vector 的返回值优化与 auto_ptr

如果我使用auto_ptr作为填充大vector的函数的返回值,这会使该函数成为源函数(它将创建一个内部auto_ptr并在返回非constauto_ptr时移交所有权)。但是,我不能将此函数与STL算法一起使用,因为为了访问数据,我需要取消对auto_ptr的引用。我猜一个很好的例子是大小为N的vector场,每个vector有100个分量。如果N很大,则函数按值或按ref返回每个100个分量vector是不一样的。此外,当我尝试这个非常基本的代码时:classt{public:t(){std::coutautoFun(){returnstd::auto_ptr(newt());}a

c++ - 调用 C++ vector 的每个元素的成员函数

假设有一个类对象的vector。vectorvec;比如说,Object1有一个成员函数voidfoo(Object2*)。我想做以下事情:for(inti=0;i如何在不使用显式循环的情况下做到这一点? 最佳答案 TR1/C++11最简单:#include#include#includestructObject2{};structObject1{voidfoo(Object2*){}};intmain(){std::vectorvec;Object2obj2;std::for_each(vec.begin(),vec.end(),

c++ - `struct ap_conf_vector_t` 的定义在哪里?

Apache源代码中structap_conf_vector_t的定义在哪里?是在什么地方生成的? 最佳答案 ap_conf_vector_t似乎是一种不透明的数据类型。这通常在过去用于定义稳定api,以后可以在不更改api的情况下更改实现。ap_conf_vector_t仅用作api函数的参数,例如:ap_get_module_configap_parse_htaccess您不应该直接操作此结构的成员。一种OO编程,您只能使用提供的函数。 关于c++-`structap_conf_ve

c++ - 3D - 来自方向 vector (向前、向上、向右)的旋转矩阵

我需要从方向vector(vForward)获取旋转矩阵我还有vRight和vUpvector。所有这些vector都是单位vector。我只需要得到旋转矩阵。要获得仅在一个平行于地面的平面(xy)中旋转的旋转矩阵,我这样做:XMMATRIXxmResult;Vec3fvFwd=pPlayer->VForward;vFwd.z=0;vFwd.Normalize();xmResult=XMMatrixSet(vFwd.y,-vFwd.x,0,0,vFwd.x,vFwd.y,0,0,0,0,1,0,0,0,0,1);以上代码只获取旋转矩阵绕Z轴旋转:我想让代码围绕所有轴旋转。这是我被迫使用