我在C中有一个图形结构,并希望对其进行深度复制(包括节点和边缘).
结构如下所示:
struct li_list {
struct li_node n;
};
struct li_node {
struct li_node *next, *prev;
};
struct gr_graph {
struct li_list nodes;
int nodecount;
};
struct gr_node {
struct li_node node;
struct gr_graph *graph;
int pred_count, succ_count;
struct li_list pred, succ;
};
struct gr_edge {
struct li_node succ, pred;
struct gr_node *from, *to;
unsigned long marks;
};
Run Code Online (Sandbox Code Playgroud)
这些结构本身并不存在,而是在另一个结构中"继承",如下所示:
struct ex_node {
struct gr_node _; // "Superclass"
int id;
struct ex_node *union_find_parent;
...
}
Run Code Online (Sandbox Code Playgroud)
是否有一个优雅的解决方案来创建这样的结构的深层副本,包括更新对副本的引用?
注意:嵌套结构的成员不指向它包含的根结构,而是指向它们相关的嵌套结构(例如,ex_node._.pred.n.next指向a ex_edge._.pred).当必须更新这些时,这意味着繁琐的指针算法. …
使用Google Map v2,我希望能够在单击GMarker的InfoWindow中的文本时触发功能.
$(".foo").click(myFunction);
...
marker.openInfoWindowHtml("<span class=\"foo\">myText</span>");
Run Code Online (Sandbox Code Playgroud)
不起作用.为什么事件没有被InfoWindow捕获?
通过Firefox + Firebug,可以向控制台写出一个jQuery对象,控制台将非常详细地向您展示该特定对象在DOM中引用的内容.
console.log($(mySelector))
Run Code Online (Sandbox Code Playgroud)
在IE8中,使用IE8开发人员工具,我还可以访问控制台日志,该日志将如上所述.但是,就像做一个警报($ myObject)一样,我得到的只是一个通用对象:
LOG: [object Object]
Run Code Online (Sandbox Code Playgroud)
有没有办法让IE向我展示除"这是一个对象"之外的更多细节?
我有一个函数,它接受一个参数并产生一个结果.不幸的是,函数产生结果需要很长时间.使用相同的输入经常调用该函数,这就是为什么我可以方便地缓存结果.就像是
let cachedFunction = createCache slowFunction
in (cachedFunction 3.1) + (cachedFunction 4.2) + (cachedFunction 3.1)
Run Code Online (Sandbox Code Playgroud)
我正在研究Data.Array,虽然数组是懒惰的,但我需要用一对对象(使用listArray)初始化它 - 这是不切实际的.如果'key'是例如'Double'类型,我根本无法初始化它,即使理论上我可以为每个可能的输入分配一个Integer,我有几万个可能的输入,我实际上只使用了少数几个.我需要使用函数而不是列表初始化数组(或者,最好是哈希表,因为只使用少量的resutls).
更新:我正在阅读备忘录文章,据我所知,MemoTrie可以按我想要的方式工作.也许.有人可以尝试生成'cachedFunction'吗?对于一个需要2个Double参数的慢函数?或者,或者,在〜[0..1亿]的域中采用一个不会占用所有内存的Int参数?
Adobe air运行时可以防止同时启动多个air应用程序实例.通过随意更改发布者ID来规避此限制是否安全?有谁知道Adobe是否计划在Air 2.0中允许多个并发实例?
如果我有这个:
$results = mysql_query("SELECT * FROM table_name WHERE id=$id");
Run Code Online (Sandbox Code Playgroud)
那么有没有办法检查有多少行的字段值为"私有"或"公司"?
我需要向用户显示找到的"私人"和"公司"记录的数量,而不进行其他查询.(有一个名为'ad_type'的列,其中包含"私有"或"公司")
我已经知道mysql_num_rows用于计算所有行!
编辑:有500万条记录!所以也许结果的迭代很慢,你怎么看?
谢谢你的帮助:)
如果我的代码中的几个地方都有这样的整数...
int my_secret = 42;
Run Code Online (Sandbox Code Playgroud)
...是否有可能使编译程序中的整数更难找到?我已经看到这用字符串完成,例如通过将每个字母移动x个字符,然后在运行时取消它们,但我怀疑这种技术是否适用于数字.
关于“提取”的手册显示您可以提取数组,如下所示:
extract(array('one'=>1,'two'=>2));
Run Code Online (Sandbox Code Playgroud)
变成$一,$二...
但 extract 函数不返回变量。有没有办法“全球化”这些变量?也许不使用 extract,而是使用 foreach 循环?
编辑:(关于我想要实现的目标的解释)我有一个包含数百条输出消息的数组,我希望将其作为变量有效地访问。我的意思是,每当我想输出一条消息时,请说:
$englishMessages = array('helloWorld'=>'Hello World');
$spanishMessages = array('helloWorld'=>'Hola Mundo');
'<span id="some">'. $helloWorld .'</span>';
Run Code Online (Sandbox Code Playgroud)
该消息将会出现。我这样做的原因是为了让用户可以更改他们查看网站所用的语言,例如:“”。$helloWorld .''; 会产生:
Hola Mundo!
Run Code Online (Sandbox Code Playgroud) Silverlight中有人发布 MVVM目前缺乏标准化,所以每个人都有自己的风味.
这就是为什么我和WPF门徒的一些人正在积极讨论每个人都同意的MVVM的哪些元素.我完全理解我们已经以不同的方式实现了模式,我们根据项目的需要混合了几种模式或创建了自己的模式,或者让开发人员的生活变得更轻松......但是忘记了这些困难或项目的特殊需求.让我们讨论一下每个人都同意的MVVM模式的标准规则.我也在这里发表了一些想法.
为何选择MVVM?
做和不看
在ViewModel中做和不做
模型
你有什么建议或评论吗?
我们小组中有一个分歧.有人说在ViewModel中有View的界面是可以的.但是有人说如果View Model有View接口,那么它将是MVP模式.
我们的一位MVVM专家谈到MVVM Vs MVP
View => ViewModel
ViewModel =>查看
MVVM
MVP
在MVP案例中,标准是Presenter通过接口,数据绑定或在被动视图的情况下通过属性与视图对话.使用被动视图时,属性不使用数据绑定,而是使用视图属性getter和setter来直接设置控件值.
你怎么看待这个想法?
你认为ViewModel有View的界面吗?
如果您想添加更多,欢迎您添加... :)
关于这篇文章的全部想法是对社区中的MVVM模式有相同的理解.
在jQuery中创建一些复杂的HTML元素是否有一般的最佳实践?我尝试了几种不同的方法.
首先,我尝试使用createElement并将其与AppendTo等链接在一起:
var badge = $(document.createElement("div")).attr("class", "wrapper1").appendTo("body");
$(document.createElement("div")).attr("class", "wrapper2").appendTo(".wrapper1");
$(document.createElement("table")).attr("class", "badgeBody").appendTo(".wrapper2");
$(document.createElement("tr")).attr("class", "row1").appendTo(".badgeBody");
$(document.createElement("td")).appendTo(".row1");
$(document.createElement("span")).attr("class", "badgeUnlocked").text("UNLOCKED! ").appendTo("td");
$(document.createElement("td")).attr("class", "badgeTitleText").appendTo(".row1");
$(document.createElement("span")).attr("class", "badgeTitle").text(name).appendTo(".badgeTitleText");
$(document.createElement("tr")).attr("class", "row2").appendTo(".badgeBody");
$(document.createElement("td")).appendTo(".row2");
$(document.createElement("img")).attr("src", imgUrl).appendTo(".row2 td");
$(document.createElement("td")).attr("class", "badgeText").appendTo(".row2");
$(document.createElement("span")).attr("class", "badgeDescription").text(description).appendTo(".badgeText");
Run Code Online (Sandbox Code Playgroud)
这可能很粗糙,因为appendTo想要添加到每个匹配元素,所以一切都需要自己的名字,否则它最终会在整个地方重复添加.
然后我尝试创建一个数组并将它们连接在一起:
var badgeFragment = [
'<div><div id="'+ closeId+'" class="closeTab">X</div>',
'<div id="'+ badgeId+'" class="wrapper1">',
'<div class="wrapper2">',
'<div class="badgeBody">',
'<div class="badgeImage">',
'<img src="'+ imgUrl +'">',
'</div>',
'<div class="badgeContents">',
'<div class="badgeUnlocked">ACHIEVEMENT UNLOCKED: </div>',
'<div class="badgeTitle">'+ name +'</div>',
'<div id="'+ textId+'" class="badgeDescription">'+ description +'</div>',
'</div>',
'<div style="clear:both"></div>',
'</div></div></div></div></div>',
]
badgeFragment = $(badgeFragment.join('')); …Run Code Online (Sandbox Code Playgroud) c ×2
jquery ×2
php ×2
air ×1
arrays ×1
caching ×1
console ×1
extract ×1
flash ×1
global ×1
google-maps ×1
haskell ×1
html ×1
infowindow ×1
integer ×1
javascript ×1
memoization ×1
mvvm ×1
mysql ×1
obfuscation ×1
sql ×1
variables ×1