我只是想知道如果java具有与kotlin中的那些相同的arrayof()/ listof()/ setof()/ mapof()?如果没有,有没有办法同样工作?我发现它们与java非常不同.
顺便说一句,做intArrayOf()/ arraylistof()/ hashsetof()/ hashmapof()等做同样的事情int [] {}/new new ArrayList <>()/ new HashSet <>()/ new HashMap <> ()等?
如何在不进行任何初始化的情况下调整C++ STL 向量的大小(调整length
两者) ?垃圾值可以接受!capacity
我知道STL Vector有resize()
方法,但是这个方法涉及初始化,这可能是不必要的。
此外,我set_len()
在 Rust 中发现了一个函数,它完全可以满足我的需求。C++ STL 有没有办法(甚至是 hacky)来实现这一点?
Rust 中的文档可以在这里set_len()
找到。
我知道设置大于向量容量的长度是未定义的行为,我必须非常小心(unsafe fn
当然),但我正在谈论那些the_new_length_i_am_setting <= vec.capacity()
有保证的情况(我已经reserved()
正确了)。
我真的不关心这些额外的空格将填充什么值(垃圾是可以接受的),因为之后我会小心地手动覆盖它们。和之间的区别是我正在谈论的内容的完美类比。malloc()
calloc()
我的用例:将来自多个read()
s 或recv()
s 调用的字节直接存储到同一向量中,而不使用额外的数组/缓冲区。(我已经在 Rust 的 Vec 中使用reserve()
and then实现了这一点set_len()
,但我未能set_len()
在 C++ STL 的vector
.
为了让事情更容易理解,我基本上尝试vector
在只接受数组的 Linux 系统 API …