我想我很了解引用和指针.这是我(我想)知道的:
int i = 5; //i is a primitive type, the value is 5, i do not know the address.
int *ptr; //a pointer to an int. i have no way if knowing the value yet.
ptr = &i; //now i have an address for the value of i (called ptr)
*ptr = 10; //Go to the value in ptr, use it to find a location and store 10 there
Run Code Online (Sandbox Code Playgroud)
请随时评论或更正这些陈述.
现在我正试图跳转到指针数组.这是我不知道的:
char **char_ptrs = new char *[50];
Node **node_ptrs …Run Code Online (Sandbox Code Playgroud) 假设我有一个模型A.然后,我有几个模型B,C,D,E等每个都有一个foreignKey模型A.我知道我可以设置B,C,D等作为模型A的内联,以便当我创建一个模型A时,它将显示用于为每个子模型添加多个项目的表单集,但我认为这会产生一个相当混乱和非常大的页面.
有没有办法以某种方式,而不是让所有这些formset内联在同一页面上,让每个formset在一个单独的页面上?换句话说,会有模型A的链接创建/编辑关联模型B,创建/编辑关联的模型C等等?
谢谢!
我还没有实现任何代码,我仍在为新应用程序的整体架构工作,这将是我第一次使用JSF + Spring.
我需要将Web服务放在Spring服务bean(业务逻辑层)之前,因为除了表示层之外,其他应用程序可以访问这些bean.在为应用程序定义不同的层或层时,我不确定如何将JSF(表示层)与Spring(此应用程序中的业务层)集成.
我正在考虑定义某种公共层或服务层,以便为JSF和Spring提供粘合代码,但在此之前,我想听听别人他们做了什么,或者他们是否已经使用其他框架来帮助这个场景的粘合代码(我已经检查了Spring MVC/Spring Faces,但我不确定这是否是我需要的,因为我认为这个应用程序更像是以JSF为中心而不是以Spring为中心,但也许你可以帮助我关于考虑另一种方法).
提前致谢.
我在我的机器上安装了本地安装的依赖项(〜/ .m2/repository/blah/blah/blah),并且m2eclipse没有将它们识别为那里 - 我认为m2eclipse正在使用它自己的maven实例.有没有办法强迫m2eclipse在osx中使用本地maven安装?
在为x86平台构建汇编程序时,我遇到了编写JMP指令的一些问题:
OPCODE INSTRUCTION SIZE
EB cb JMP rel8 2
E9 cw JMP rel16 4 (because of 0x66 16-bit prefix)
E9 cd JMP rel32 5
...
Run Code Online (Sandbox Code Playgroud)
(来自我最喜欢的x86指令网站http://siyobik.info/index.php?module=x86&id=147)
所有都是相对跳转,其中每个编码(操作+操作数)的大小在第三列中.
现在我的原始设置(因此因故障而设计)为每条指令保留了最大(5个字节)空间.操作数尚不清楚,因为它跳转到一个未知的位置.所以我实现了一个"重写"机制,如果已知跳转的位置,则将操作数重写在内存中的正确位置,并用NOPs 填充其余部分.在紧密循环中这是一个有点严重的问题.
现在我的问题是以下情况:
b: XXX
c: JMP a
e: XXX
...
XXX
d: JMP b
a: XXX (where XXX is any instruction, depending
on the to-be assembled program)
Run Code Online (Sandbox Code Playgroud)
问题是我想要一个JMP指令的最小可能编码(并且没有 NOP填充).
我必须知道指令的大小c之前,我可以计算之间的相对距离a,并b在操作数d.这同样适用JMP于 …
我有一个应用程序,从二进制日志文件加载记录,并在虚拟TListView中显示它们.文件中可能有数百万条记录,用户可以过滤显示,因此我不会一次加载内存中的所有记录,并且ListView项目索引不是一对一的关系.文件记录偏移(例如,列表项1可以是文件记录100).我使用ListView的OnDataHint事件来加载ListView实际感兴趣的项目的记录.当用户滚动时,OnDataHint指定的范围发生变化,允许我释放不在新范围内的记录,并分配新记录如所须.
这样工作正常,速度可以忍受,并且内存占用非常低.
我目前正在评估TVirtualStringTree作为TListView的替代品,主要是因为我想添加扩展/折叠跨越多行的记录的能力(我可以通过动态递增/递减项目计数来使用TListView来捏造它,但这不是像使用真正的树一样直接).
在大多数情况下,我已经能够移植TListView逻辑并让一切工作正常.我注意到TVirtualStringTree的虚拟范例有很大的不同.它没有与TListView相同的OnDataHint功能(我可以使用OnScroll事件伪造它,这允许我的内存缓冲逻辑继续工作),我可以使用OnInitializeNode事件将节点与分配的记录相关联.
但是,一旦树节点初始化,它就会看到它在树的生命周期内保持初始化状态.这对我不好.当用户滚动并从内存中删除记录时,我需要重置那些非可视节点,而不是完全从树中删除它们,或者丢失它们的展开/折叠状态.当用户将它们滚动回视图时,我可以重新分配记录并重新初始化节点.基本上,就虚拟化而言,我希望尽可能使TVirtualStringTree像TListView一样.
我已经看到TVirtualStringTree有一个ResetNode()方法,但每次尝试使用它时都会遇到各种错误.我一定是错了.我还想过将每个节点内的数据指针存储到我的记录缓冲区中,然后分配并释放内存,相应地更新这些指针.最终效果也不是很好.
更糟糕的是,我最大的测试日志文件中有大约500万条记录.如果我一次初始化具有那么多节点的TVirtualStringTree(当日志显示未经过滤时),那么树的内部开销就会占用高达260MB的内存(还没有分配任何记录).而使用TListView,加载相同的日志文件及其背后的所有内存逻辑,我可以使用几个MB.
有任何想法吗?
我需要使用堆,所以我搜索了STL,但它似乎没有用,我写了一些代码来解释我的意思:
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <algorithm>
struct data
{
int indice;
int tamanho;
};
bool comparator2(const data* a, const data* b)
{
return (a->tamanho < b->tamanho);
}
int main()
{
std::vector<data*> mesas;
data x1, x2, x3, x4, x5;
x1.indice = 1;
x1.tamanho = 3;
x2.indice = 2;
x2.tamanho = 5;
x3.indice = 3;
x3.tamanho = 2;
x4.indice = 4;
x4.tamanho = 6;
x5.indice = 5;
x5.tamanho = 4;
mesas.push_back(&x1);
mesas.push_back(&x2);
mesas.push_back(&x3);
mesas.push_back(&x4);
mesas.push_back(&x5);
make_heap(mesas.begin(), mesas.end(), comparator2);
for(int …Run Code Online (Sandbox Code Playgroud) 如何在使用后台线程时有效地显示文件的状态?
例如,假设我有一个100MB的文件:
当我通过一个线程(仅作为一个例子)执行下面的代码时,它运行大约1分钟:
foreach(byte b in file.bytes)
{
WriteByte(b, xxx);
}
Run Code Online (Sandbox Code Playgroud)
但是......如果我想更新用户我必须使用委托从主线程更新UI,下面的代码需要 - 永远 - 字面上我不知道我还在等待多久,我创建了这个帖子,它甚至没有完成30%.
int total = file.length;
int current = 0;
foreach(byte b in file.bytes)
{
current++;
UpdateCurrentFileStatus(current, total);
WriteByte(b, xxx);
}
public delegate void UpdateCurrentFileStatus(int cur, int total);
public void UpdateCurrentFileStatus(int cur, int total)
{
// Check if invoke required, if so create instance of delegate
// the update the UI
if(this.InvokeRequired)
{
}
else
{
UpdateUI(...)
}
}
Run Code Online (Sandbox Code Playgroud) 如果我的go程序可以以不同的方式执行(cron,monit等等),那么在运行时期间获取包含可执行文件的目录的最可靠方法是什么?
在python中,这将是变量:
os.path.realpath(__file__)
Run Code Online (Sandbox Code Playgroud) 如何在我的AJAX请求中将JavaScript数组作为JSON变量发送?