问题标签 [stdvector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3840 浏览

c++ - 如何在 C++ 中做集合的向量?

我可以做一个简单的集合数组: set < char > * words = new set < char > [10] 如何做一个集合向量?这会导致编译器错误: vector < set< char >> v. 谢谢你的回答!

0 投票
3 回答
2867 浏览

c++ - 手动排序向量在 C++ 中

我目前正在研究向量如何在 C++ 中工作。我已经阅读并很好地理解了它们的功能。

我正在研究对具有 10,000 个整数的向量对象进行排序的不同方法,我使用了 std::sort 方法和 shell 排序。

我注意到对向量进行 shell 排序比对简单的 C 样式数组进行排序要慢。我了解到这是因为“不支持在容器中间快速插入或删除元素”(http://www.cppreference.com/wiki/container/vector/start)。因此,显然具有大量随机访问的 shell 排序会非常慢。

我想知道在任何人的经验中,对于具有 10,000 个整数的向量,更好的手动排序方法是什么?这是一个你看到的学习练习!:)

0 投票
1 回答
773 浏览

c++ - 通过组合的数学向量类

我开始写一个类,它的行为很像,std::vector但有一些数学运算。主要是像向量的范数和重载重要的数学运算符(+,- 等),这将添加,减去元素明智的东西。

该课程发布在下面,我曾经boost::operators编写过所有的数学运算符,它们都可以完美地工作。我在实现迭代器时遇到了一些问题。我试图将迭代器编写为嵌套类并用于boost::iterator获取std::vector迭代器的大部分/所有功能。

这是我遇到麻烦的地方,代码将无法编译大约 2 英里的模板相关错误输出。如果您有兴趣,我可以发布,但这是典型的详细提升模板错误。

我的问题有两个。

首先,构图是最好的设计选择吗?我可以用私有继承或装饰器模式做得更好吗?或者也许有人知道这个想法在图书馆中的实现?

其次,我在迭代器上做错了什么?我觉得我在boost::iterator实现中缺少一些基本的东西,我想修复它而不是改变我的设计。

我没有在大多数方法中包含实现,因为它们要么微不足道,要么不重要。

0 投票
2 回答
2019 浏览

c++ - 使用向量而不是动态分配的 wchar 数组

前几天,我被告知(在 stackoverflow 上!)因为不使用向量而不是动态分配的 wchar 数组。

所以我研究了使用这种字符串操作方法,因为这似乎是防止可能的内存泄漏的好主意。

我想出的是,除非我错误地使用了向量模板类,否则使用向量比使用堆分配的数组和旧的 memcpy 灵活得多。

我希望 sOutput 向量包含所有字符串的串联。相反,它只包含第一个插入的字符串。

另外,我想我记得听说过虽然不可能在初始化列表中分配向量的值,但它可能是 c++0x 的一个特性。这是正确的 - 是否有任何方法(目前)可以执行以下操作:

最后,对于我想通过上面的简单例程实现的目标,我会更好地使用动态分配的数组,还是应该坚持使用看似不灵活的 wchar 向量?

0 投票
3 回答
480 浏览

c++ - 无法在 C++ 中推送向量和列表中的项目?

这是一个基本的归并排序程序:

问题是当我尝试将项目推入“矢量合并”时,没有任何反应。(请参考代码下方的gdb数据)

//====================================GDB DATA=========== =========================

谁能帮我一把??

0 投票
2 回答
2459 浏览

c++ - std::vector 断言失败(向量迭代器不兼容)

我有这个结构:

然后我创建一个 MxMInstanceData 向量:

如果我打电话instInFrustumData.clear(),我会收到这个错误:

断言失败(向量迭代器不兼容)

矢量创建代码:

矢量更新代码:

什么能让这发生?

在我班级的析构函数中,我也调用 clear()

0 投票
5 回答
14074 浏览

c++ - 如何廉价地将 C 样式数组分配给 std::vector?

目前我执行以下操作:

如何优化此分配?我不想执行元素复制,而只是交换指针。

0 投票
7 回答
842 浏览

c++ - 这个模型需要互斥体吗?

我正在设计一个带有服务器的程序,让两个客户端进行通信。一个客户端执行命令,另一个客户端执行命令。

为了完成这项工作,我有两个线程:一个线程用于受控客户端,另一个用于控制器客户端。

受控客户端始终保持连接,有一个带有任务的向量,并在添加任务时执行这些任务。它有一个无限循环,当连接关闭时停止。

控制器客户端将任务添加到向量中。

现在由于两个线程之间共享一个向量,可能会出现竞争条件,但是由于一个线程只添加对象而另一个只弹出对象,这有必要吗?我试图为这个问题制作一个流程图,但可能不清楚。我真的不知道如何创建流程图: 在此处输入图像描述

我正在使用std::vector <CustomClass>C++ 来实现这一点。

在此先感谢,
ief2

编辑:附加问题:vector.size()调用是否需要互斥锁?

0 投票
1 回答
1770 浏览

c++ - 自定义对象向量的 push_back 上的 C++ 运行时错误

在我的课堂上,当我尝试将任何对象推送到向量 myCache 上时,我得到一个运行时错误。我知道我正在正确初始化向量,并且对为什么会发生这种情况感到困惑。

缓存块.h:

任何人都可以帮忙吗?

0 投票
4 回答
696 浏览

c++ - 对象指针向量,初始化

我对 C++ 还不是很有经验,所以如果这是基本的东西,请耐心等待。

我有一些像下面这样的代码。L是一个抽象类(它有许多纯虚函数),并且A,BC都是从 . 派生的常规类L。这些可能有任意数量,而且它们都是不同的。

它有效,但确实必须有更好的方法来初始化该向量。对?

向量在首次初始化后不应该改变。但是,我认为我不能将其设为 const,因为各种对象本身可能会在内部发生变化。我在常规数组上选择了一个向量,因为我不想手动跟踪它的长度(这被证明容易出错)。

理想情况下,我想将向量的定义和初始化从一个单独的文件中提取出来,main然后再放到一个单独的文件中#include。当我尝试编译器抱怨它“在'='标记之前预期构造函数、析构函数或类型转换”时。所有类ABC具有默认构造函数。

另外,我的印象是我必须手动delete使用创建的任何内容new,但它不会ls使用delete或删除delete[]。如果我尝试delete ls;编译器会抱怨“type 'class std::vector<L*, std::allocator<L*> >' argument given to 'delete', expected pointer”。

以上是安全的还是会导致一些内存问题?