小编jer*_*c05的帖子

Java相当于来自Kotlin的arrayof()/ listof()/ setof()/ mapof()

我只是想知道如果java具有与kotlin中的那些相同的arrayof()/ listof()/ setof()/ mapof()?如果没有,有没有办法同样工作?我发现它们与java非常不同.

顺便说一句,做intArrayOf()/ arraylistof()/ hashsetof()/ hashmapof()等做同样的事情int [] {}/new new ArrayList <>()/ new HashSet <>()/ new HashMap <> ()等?

java arrays list set

4
推荐指数
1
解决办法
1281
查看次数

C++ STL Vector 相当于 Rust 中的 set_len()

TL; 博士:

如何在不进行任何初始化的情况下调整C++ STL 向量的大小(调整length两者) ?垃圾值可以接受!capacity

问题

我知道STL Vector有resize()方法,但是这个方法涉及初始化,这可能是不必要的。

此外,我set_len()在 Rust 中发现了一个函数,它完全可以满足我的需求。C++ STL 有没有办法(甚至是 hacky)来实现这一点?

Rust 中的文档可以在这里set_len()找到。

编辑1

  1. 我知道设置大于向量容量的长度是未定义的行为,我必须非常小心(unsafe fn当然),但我正在谈论那些the_new_length_i_am_setting <= vec.capacity()保证的情况(我已经reserved()正确了)。

  2. 我真的不关心这些额外的空格将填充什么值(垃圾是可以接受的),因为之后我会小心地手动覆盖它们。之间的区别是我正在谈论的内容的完美类比。malloc()calloc()

  3. 我的用例:将来自多个read()s 或recv()s 调用的字节直接存储到同一向量中,而不使用额外的数组/缓冲区。(我已经在 Rust 的 Vec 中使用reserve()and then实现了这一点set_len(),但我未能set_len()在 C++ STL 的vector.

  4. 为了让事情更容易理解,我基本上尝试vector在只接受数组的 Linux 系统 API …

c++ stl vector rust

4
推荐指数
1
解决办法
495
查看次数

标签 统计

arrays ×1

c++ ×1

java ×1

list ×1

rust ×1

set ×1

stl ×1

vector ×1