如何在各种语言中实现以下功能?
(x,y)在给定输入值的情况下计算圆周上的点:
我在使用FieldOffset时遇到了一些问题.下面的代码是一个例子,它对我不起作用:
[StructLayout(LayoutKind.Explicit)]
public struct IndexStruct {
[FieldOffset(0)]
public byte[] data;
[FieldOffset(0)]
public short[] idx16;
[FieldOffset(0)]
public int[] idx32;
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我将名为"data"的数组设置为序列化字节数组,然后尝试使用"idx16"字段将数据检索为short,则索引仍然作为byte []对齐.这意味着idx16 1获取数据中的第二个字节,而不是第二个16位字(字节2和3).如果我执行逆I索引短路而不是字节,则意味着偏移对齐从源数据继承.我的问题是,有办法解决这个问题吗?我知道我可以通过乘以元素的大小来补偿索引值,但还有另一种方法吗?
这是我在StackOverflow上找到的答案,但在尝试该代码时,结果证明它无法正常工作.使用以下代码在VS中使用单元测试尝试使用它,但没有成功:
[TestMethod()]
public void SumTest() {
float[] fArr = {2.0f, 0.5f, 0.0f, 1.0f};
MemoryStream ms = new MemoryStream();
for (int i = 0; i < fArr.Length; i++) {
ms.Write(BitConverter.GetBytes(fArr[i]), 0, sizeof(float));
}
byte[] buff = ms.ToArray();
double expected = 3.5f;
double actual = Sum(buff);
Assert.AreEqual(expected, actual);
}
Run Code Online (Sandbox Code Playgroud)
提前谢谢了!
我有一个通用的问题,我将尝试使用一个例子来解释.
假设我有一个包含字段的表:"id","name","category","appearances"和"ratio"
我的想法是,我有几个项目,每个项目都与一个类别有关并且多次"出现".比率字段应包括每个项目出现的百分比,超出该类别中项目的总出现次数.
在伪代码中我需要的是以下内容:
对于每个类别,
查找与其相关的项目的外观总和.例如,它可以用(select sum("appearances") from table group by category)完成
对于每个项目,
将比率值设置为项目的外观除以上面类别的总和
现在,我正在尝试使用单个更新查询来实现此目的,但似乎无法做到这一点.我认为我应该做的是:
update Table T
set T.ratio = T.appearances /
(
select sum(S.appearances)
from Table S
where S.id = T.id
)
Run Code Online (Sandbox Code Playgroud)
但MySQL不接受更新列中的别名T,我没有找到实现此目的的其他方法.
有任何想法吗?
我只是对我的SVN存储库做了一些愚蠢的事情,我不小心将一大堆东西导入到根目录而不是子文件夹中.我需要很长时间才能清理....除非有一个简单的方法对回购进行全局还原?帮助文件讨论了还原工作副本,但新导入的项目没有工作副本.有没有办法撤消导入?
我想将数据层与业务逻辑和业务逻辑从GUI分离.潜入网络我偶然发现了一些资源,但仍无法让我清醒.有些人谈论的模式,其他人指出各种框架.我的要求是:
我需要的是:
delphi orm user-interface business-logic-layer business-objects
我有一个类TContainer,它是指向TItems类的几个stl集合指针的集合.
我需要创建一个迭代器来遍历我的TContainer类中所有集合中的元素,从而抽象出内部工作的客户端.
这样做有什么好办法?我应该创建一个扩展迭代器的类(如果是这样,我应该扩展什么迭代器类),我应该创建一个迭代器类,它是迭代器的集合吗?
我只需要一个FORWARD_ONLY迭代器.
IE,如果这是我的容器:
typedef std::vector <TItem*> ItemVector;
class TContainer {
std::vector <ItemVector *> m_Items;
};
Run Code Online (Sandbox Code Playgroud)
遍历m_Items成员变量向量中包含的所有项的好迭代器是什么.
我有一些不会说英语的客户.他们希望我为他们编写的JavaScript使用另一种语言.
浏览器可以理解其他语言,还是仅限于非英语注释?
navigateur.nomApp.indice("Microsoft")
Run Code Online (Sandbox Code Playgroud)
代替 :
navigator.appName.indexOf("Microsoft")
Run Code Online (Sandbox Code Playgroud) 我从连接到UNIX服务器的Windows机器上构建了一个批处理文件.我然后希望命令在批处理文件中在UNIX中执行.登录到服务器后,UNIX似乎无法识别我的命令.这是我编码的:
ssh SERVERNAME退出
现在,我只是想让它登录并退出.我登录到服务器,但是然后退出命令没有执行.有人知道在我使用这个批处理文件登录后让UNIX执行我的命令吗?
我被要求编写一个servlet来收集客户端的详细信息,如ip,mac address等.
获取他的IP是非常直接的(request.getRemoteAddr())但我没有找到一个优雅的方式来获取他的MAC地址.
似乎合理的是,Web服务器可以访问诸如Mac地址等数据,因为它获取TCP数据包等等.这个数据在哪里注册?它可以访问吗?
(我正在Tomcat6上工作)
在大学的最后几年,我有一个关于编译器的课程.我们为C的子集创建了一个编译器.我一直想知道如何在C++中将pass-by-ref函数调用编译成汇编.
根据我的记忆,pass-by-val函数调用遵循以下过程:
传递参考有什么不同?(int void(int&);)
编辑:
我可能听起来完全失去了,但是,如果你能帮助我,我真的很感激.
每个人的答案基本上都是传递地址而不是值.我明白这基本上是指针传递的东西.那么,为什么这两个函数表现得不同呢?:
struct A {
int x;
A(int v){
x = v;
}
};
int byRef(A& v){
v = A(3);
return 0;
}
int byP (A* v){
v = &A(4); //OR new A(4)
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
A a (1); A b (2);
byRef(a); byP (&b);
cout << a.x << " " << b.x;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道在byP(A*)中,v是按值传递的,因此,它不会影响调用者的参数.那么,你如何用A*实现byRef(A&)?
c++ ×2
algorithm ×1
alignment ×1
arrays ×1
assembly ×1
c# ×1
delphi ×1
field ×1
html ×1
indexing ×1
iterator ×1
java ×1
javascript ×1
math ×1
multilingual ×1
mysql ×1
orm ×1
servlets ×1
shell ×1
sql ×1
sql-update ×1
ssh ×1
stl ×1
svn ×1
tcp ×1
tomcat ×1
trigonometry ×1
undo ×1
unix ×1
windows ×1