问题标签 [cross-language]
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.
java - 为什么 C++ 和 Java 中的动态数组具有不同的初始容量?
所以我一直在寻找动态数组通常是如何工作的。我发现是两个不同的概念。
在 C++ 中
在 C++ 中,动态数组一般由向量实现。向量将容量设置为 0,增加插入新元素的计数,然后将新插入的容量大小加倍。
矢量.h
用于扩展矢量大小
在 Java 中
在 java 中,动态数组是使用 arrayList 实现的,它们将容量设置为 10(基于 JVM),一旦容量已满,它们就会将容量增加一些。将容量设置为 10 的原因是您不必为每次新插入频繁地初始化内存。一旦容量已满,请增加容量大小。
好奇心
为什么vector.h中的实现将默认值设置为0?将容量设置为某个较小的值(比如说 10)而不是将其设置为 0,可以节省每次用户插入某个元素时初始化内存的开销。
因为是动态数组,所以设置vector的小容量是没有坏处的,因为动态数组的大小一般都在10以上。
编辑:我的问题是为什么默认 0 ?默认情况下它可以是任何小的值,因为无论如何向量都会扩展到某个特定的大小,这就是首先使用向量的目的。
c++ - 使用智能指针包装 C 创建和销毁函数
我有一些处理对象创建和销毁的 C API,它提供:createObject(...)
和destroy(...)
. 我想将它包装成一些更现代的构造/破坏机制,并将它们与智能指针一起使用。我担心在某些时候我会忘记销毁对象,或者会发生一些异常。
我知道 的自定义删除器函数shared_ptr
,但我不能显式调用new
,因为createOjbect
函数处理初始化。
在这种情况下我可以使用 STL 智能指针吗?在这种情况下,我是否必须从头开始实现一个在构造函数中初始化、在析构函数中销毁和引用计数的类?
c++ - 在 Objective-C++ 的 .h 文件中添加指向定义的 Objective-C 类的指针
是否可以在 Objective-C++ 中创建具有指向 Objective-C 接口(在.h
文件内)的字段的类?
为了澄清一点,我创建了一个 Objective-C 接口:
我可以在.mm
文件中创建它并且它可以工作,但它适用于全局变量,我不允许更改它的范围。所以我想在里面使用它Logger.h
:
当我在里面定义我的界面时,Logger.mm
它就起作用了。但是是否可以在.h
文件中合并来自 Objective-C 和 C++ 的 Objective-C++ 代码?还是只能在.mm
文件中?
c# - 直接从 Unity3d 资产运行 Matlab 脚本
几天来,我一直在用头撞墙,但找不到解决方案。
我有一个要从 Unity3D 项目的资产中运行的 Matlab 脚本,但我无法使其正常工作。脚本本身很好,因为它在 Matlab 中直接执行时可以正常工作。问题在于从 Unity 启动它。这就是我所拥有的。
我知道,这真的很笨拙,但这是迄今为止我发现的唯一有效的方法。
问题在于脚本中有双引号和空格,这会使命令行感到困惑。我试过转义那些字符,转义整个字符串,我能想到的一切。
在你问之前,是的,使用 MatLab 是我唯一的选择。我和下一个人一样讨厌它,但它有一些我需要的功能。
有没有人让这种事情发挥作用?
注意:我现在实际上无法访问该项目,因此上述代码中的任何错误都不是真正的问题,这只是我对它的最好纪念。
python - 在 C 和 Python 中映射同一个文件,它真的会使用共享内存吗?mmap 可以跨不同的编程语言工作吗?
通过读取 C 代码并从 python 写入,我无法在 C 中看到我在 python 中所做的更改。
因此,我真的很想知道 mmap 是否可以跨 C 和 Python 等语言工作,还是我在这里犯了错误,请告诉我。
从 C 代码读取:
从 Python 编写
interop - 静态数组和 C 互操作性的 D 问题
我在将包含静态数组的 D 结构传递给 C 时遇到问题。
D 代码:
C代码:
结果:x=0.000000,y=0.000000,z=0.000000。我还检查了 D 和 C 中的两个结构具有相同的大小 - 12 个字节。
c# - 如何将 C# 类字符串变量传递给 sbyte* 参数?
我继承了一个带有相关头文件的 C++ DLL,函数声明如下
我还继承了一个引用 VC++ 引用类,它包装了上面要在 C# 环境中使用的 DLL
在我的 C# 应用程序中,我可以使用 func1_w(int i),但我不明白如何将字符串传递给 func2_w(sbyte* s):我收到一个错误,提示我无法获得指向 sbyte 的指针。我将 C# 项目设置为不安全并将函数声明为不安全。
如何将 sbyte* 参数传递给 functiuon func2_w?
c - LuaJIT 如何用 FFI 包装 C 数据类型?
假设我有以下 LuaJIT 代码:
假设它library.doSomethingTo
由以下 C 代码定义:
//code here
为了library.doSomethingTo(a)
打印 10需要什么代码?
lua - 需要()在 Lua 的子目录中创建一个 dll
Lua 的require(<name>)
函数,如果在 a上调用<name>.dll
,将寻找一个名为 的函数luaopen_<name>
。
如果我想说的话该require("folder1.folder2.library")
怎么办?这不像我可以命名一个函数luaopen_folder1.folder2.library
。
我正在寻找一种不涉及更改 Lua 模块路径的方法——即一种可以根据项目复杂性扩展的方法。
dll - Lua 5.1 dll 错误:第 1 行应为等号?
我有以下代码:
尝试调用require "Library"
会引发以下错误:
我怎样才能解决这个问题?如果需要更多信息,请告诉我;我是使用 dll 的新手。