问题标签 [vector]

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 投票
8 回答
4228 浏览

c++ - 当 cout 显示正确大小时,为什么 printf 显示向量大小为 0?

当我使用 printf 和 %d 来获取向量的大小时,我不明白为什么会得到 0:

如果我通过向量遍历

我得到了正确的迭代次数。

我做错了什么或printf怎么了?size() 返回一个 int 对吗?


这是我的整个小脚本:

0 投票
7 回答
9620 浏览

c++ - 重载运算符 << - C++

背景

我有一个在内部使用 vector<std::string> 的容器类。我为这个包装类提供了一个方法AddChar(std::string) ,它对内部向量执行push_back() 。在我的代码中,有时我必须向容器中添加多个项目。为此我必须使用

这使得代码更大。所以为了让它更容易,我打算重载操作符<<。这样我就可以写了

两个项目将被添加到基础向量中。

这是我用来做的代码

它按预期工作。

问题

  1. 运算符重载是否正确编写?
  2. 在这种情况下重载运算符是一种好习惯吗?
  3. 这段代码会有任何性能问题或任何其他问题吗?

有什么想法吗?

编辑

在听到优秀的评论后,我决定不超载 << 因为它在这里没有意义。我删除了运算符重载代码,这是最终代码。

这允许我添加

在 C# 中,我可以通过使用 params 关键字更轻松地做到这一点。代码会像

我知道在 C++ 中,我们可以使用...来指定参数的可变长度。但是 AFAIK,它不是类型安全的。那么这样做是推荐的做法吗?这样我就可以写了

感谢您的回复。

0 投票
5 回答
760 浏览

c++ - 扩展作为内存传递的向量的大小

我将我的向量传递给一个需要 ac 数组的函数。它返回它填充的数据量(类似于 fread)。有没有办法告诉我的向量改变它的大小以包含函数传入的数量?

当然,我确保向量有容量()来保存这么多数据。

0 投票
1 回答
2769 浏览

c++ - 在调整大小时禁用矢量填充值?C++

我处于必须使用 ac 样式函数返回复制的 len 的情况。我决定我应该调整到最大值,然后调整到返回的长度展开作为内存传递的向量的大小

我知道 resize 将值设置为 fillValue (总是 0?)。因此,每秒进行 60 次毫无意义的初始化(希望每次少于 mb)。有没有办法在调整大小时禁用启动?

0 投票
2 回答
2632 浏览

c# - 如何用 C# 绘制表格?

我需要用 C# 将数据表绘制成矢量图像。我正在寻找一个库或组件来帮助我绘制表格,而不必自己关心它的布局。

我只想关心哪些数据属于哪个单元格。

我已经知道一些允许我使用 C# 创建矢量图像的库(例如用于 SVG 图像的 SharpVectorGraphics/SvgNet),但我找不到任何可以帮助我处理表格的东西。

问题

有人知道可以做到这一点的库或组件吗?如果它做得好,它不一定是免费的。矢量图像应具有可由 Microsoft PowerPoint 和 Word 的标准安装显示的格式。

问题2:

有谁知道用 C# 将(一个)HTML(表格)渲染到图像的方法?

0 投票
9 回答
1856 浏览

c++ - 每次循环迭代都清理向量。什么是最节省内存的方法?

我对 std::vector 有疑问。

我有一个非常占用内存的算法,我预见到预测向量大小并提前为向量保留足够的内存将对减少内存使用有很大帮助。

以下哪个更好:

或这个:

请告诉我哪个最好,或者是否有更好的做事方式。

非常感谢您!

0 投票
5 回答
53514 浏览

c++ - C ++:围绕某个点旋转矢量

我正在尝试围绕向量上的某个点旋转向量(在 C++ 中):

围绕点 (1,1)(即“5”)旋转 90 度将导致:

现在我正在使用:

但我不希望它围绕 (0,0) 旋转

0 投票
2 回答
5109 浏览

vector - 如何访问向量中的变量*对象?

如何从向量中获取变量?

我不能使用二进制插入运算符或等号运算符。

早些时候,我声明了 avector<someStruct> *vObj并分配了它,然后返回了vObj 并在这个函数中调用了它:

当我调试它时,v[x]现在有了原始向量的全部内容,就像以前没有下标/索引一样。

但我认为我没有做任何事情来取得进展。

我的向量中只有大约 4 个变量;当我调试它时,它有我需要的信息,但我无法得到它。

0 投票
4 回答
815 浏览

c++ - 在winsock中重用向量作为数组的更有效方法?

我目前正在使用向量作为 c 样式的数组来通过 Winsock 发送和接收数据。

我有一个 std::vector ,我将它用作我的“字节数组”。

问题是,我使用了两个向量,一个用于每个发送,一个用于每个接收,但我正在做的似乎相当低效。

例子:

SendData 只是调用 send 适当的次数,并确保一切正常。

反正。除非我在每次使用之前将向量归零,否则我会收到内容重叠的错误。有没有更有效的方法让我做我正在做的事情?因为似乎在每次调用时将整个缓冲区归零是非常低效的。

谢谢。

0 投票
9 回答
2408 浏览

c++ - 使用迭代器遍历和取消遍历 std::vector 的最干净的方法是什么?

我有一种情况,我正在穿过一个向量,做一些事情:

在正常情况下 - 假设一切顺利 - 我一路前进my_list.end()并成功结束循环。

但是,如果在我做事时出现问题,我希望能够撤消所有内容——基本上将我的步骤追溯到向量的最开始,以相反的顺序一次撤消所有内容。

我的问题是,当我到达时my_list.begin()- 如嵌套 for 循环所示 - 我真的还没有完成,因为我仍然需要调用undoStuff()列表中的第一个元素。现在,我可以在循环之外进行最终调用,但这似乎有点不干净。

在我看来,我只有在到达时才完成my_list.rend()。但是,我无法将 astd::vector::iterator与 a进行比较std::vector::reverse_iterator

鉴于我正在尝试做的事情,迭代器类型/循环组合的最佳选择是什么?