问题标签 [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.
c++ - 如何在 C++ 中做集合的向量?
我可以做一个简单的集合数组:
set < char > * words = new set < char > [10]
如何做一个集合向量?这会导致编译器错误:
vector < set< char >> v
. 谢谢你的回答!
c++ - 手动排序向量在 C++ 中
我目前正在研究向量如何在 C++ 中工作。我已经阅读并很好地理解了它们的功能。
我正在研究对具有 10,000 个整数的向量对象进行排序的不同方法,我使用了 std::sort 方法和 shell 排序。
我注意到对向量进行 shell 排序比对简单的 C 样式数组进行排序要慢。我了解到这是因为“不支持在容器中间快速插入或删除元素”(http://www.cppreference.com/wiki/container/vector/start)。因此,显然具有大量随机访问的 shell 排序会非常慢。
我想知道在任何人的经验中,对于具有 10,000 个整数的向量,更好的手动排序方法是什么?这是一个你看到的学习练习!:)
c++ - 通过组合的数学向量类
我开始写一个类,它的行为很像,std::vector
但有一些数学运算。主要是像向量的范数和重载重要的数学运算符(+,- 等),这将添加,减去元素明智的东西。
该课程发布在下面,我曾经boost::operators
编写过所有的数学运算符,它们都可以完美地工作。我在实现迭代器时遇到了一些问题。我试图将迭代器编写为嵌套类并用于boost::iterator
获取std::vector
迭代器的大部分/所有功能。
这是我遇到麻烦的地方,代码将无法编译大约 2 英里的模板相关错误输出。如果您有兴趣,我可以发布,但这是典型的详细提升模板错误。
我的问题有两个。
首先,构图是最好的设计选择吗?我可以用私有继承或装饰器模式做得更好吗?或者也许有人知道这个想法在图书馆中的实现?
其次,我在迭代器上做错了什么?我觉得我在boost::iterator
实现中缺少一些基本的东西,我想修复它而不是改变我的设计。
我没有在大多数方法中包含实现,因为它们要么微不足道,要么不重要。
c++ - 使用向量而不是动态分配的 wchar 数组
前几天,我被告知(在 stackoverflow 上!)因为不使用向量而不是动态分配的 wchar 数组。
所以我研究了使用这种字符串操作方法,因为这似乎是防止可能的内存泄漏的好主意。
我想出的是,除非我错误地使用了向量模板类,否则使用向量比使用堆分配的数组和旧的 memcpy 灵活得多。
我希望 sOutput 向量包含所有字符串的串联。相反,它只包含第一个插入的字符串。
另外,我想我记得听说过虽然不可能在初始化列表中分配向量的值,但它可能是 c++0x 的一个特性。这是正确的 - 是否有任何方法(目前)可以执行以下操作:
最后,对于我想通过上面的简单例程实现的目标,我会更好地使用动态分配的数组,还是应该坚持使用看似不灵活的 wchar 向量?
c++ - 无法在 C++ 中推送向量和列表中的项目?
这是一个基本的归并排序程序:
问题是当我尝试将项目推入“矢量合并”时,没有任何反应。(请参考代码下方的gdb数据)
//====================================GDB DATA=========== =========================
谁能帮我一把??
c++ - std::vector 断言失败(向量迭代器不兼容)
我有这个结构:
然后我创建一个 MxMInstanceData 向量:
如果我打电话instInFrustumData.clear()
,我会收到这个错误:
断言失败(向量迭代器不兼容)
矢量创建代码:
矢量更新代码:
什么能让这发生?
在我班级的析构函数中,我也调用 clear()
c++ - 如何廉价地将 C 样式数组分配给 std::vector?
目前我执行以下操作:
如何优化此分配?我不想执行元素复制,而只是交换指针。
c++ - 这个模型需要互斥体吗?
我正在设计一个带有服务器的程序,让两个客户端进行通信。一个客户端执行命令,另一个客户端执行命令。
为了完成这项工作,我有两个线程:一个线程用于受控客户端,另一个用于控制器客户端。
受控客户端始终保持连接,有一个带有任务的向量,并在添加任务时执行这些任务。它有一个无限循环,当连接关闭时停止。
控制器客户端将任务添加到向量中。
现在由于两个线程之间共享一个向量,可能会出现竞争条件,但是由于一个线程只添加对象而另一个只弹出对象,这有必要吗?我试图为这个问题制作一个流程图,但可能不清楚。我真的不知道如何创建流程图:
我正在使用std::vector <CustomClass>
C++ 来实现这一点。
在此先感谢,
ief2
编辑:附加问题:vector.size()
调用是否需要互斥锁?
c++ - 自定义对象向量的 push_back 上的 C++ 运行时错误
在我的课堂上,当我尝试将任何对象推送到向量 myCache 上时,我得到一个运行时错误。我知道我正在正确初始化向量,并且对为什么会发生这种情况感到困惑。
和
缓存块.h:
任何人都可以帮忙吗?
c++ - 对象指针向量,初始化
我对 C++ 还不是很有经验,所以如果这是基本的东西,请耐心等待。
我有一些像下面这样的代码。L
是一个抽象类(它有许多纯虚函数),并且A
,B
和C
都是从 . 派生的常规类L
。这些可能有任意数量,而且它们都是不同的。
它有效,但确实必须有更好的方法来初始化该向量。对?
向量在首次初始化后不应该改变。但是,我认为我不能将其设为 const,因为各种对象本身可能会在内部发生变化。我在常规数组上选择了一个向量,因为我不想手动跟踪它的长度(这被证明容易出错)。
理想情况下,我想将向量的定义和初始化从一个单独的文件中提取出来,main
然后再放到一个单独的文件中#include
。当我尝试编译器抱怨它“在'='标记之前预期构造函数、析构函数或类型转换”时。所有类A
,B
并C
具有默认构造函数。
另外,我的印象是我必须手动delete
使用创建的任何内容new
,但它不会ls
使用delete
或删除delete[]
。如果我尝试delete ls;
编译器会抱怨“type 'class std::vector<L*, std::allocator<L*> >' argument given to 'delete', expected pointer”。
以上是安全的还是会导致一些内存问题?