我有一个名为Point的结构.点非常简单:
struct Point
{
Row row;
Column column;
// some other code for addition and subtraction of points is there too
}
Run Code Online (Sandbox Code Playgroud)
Row并且Column基本上是美化int的,但我厌倦了意外地将输入参数转换为函数并给它们每个包装类.
现在我使用了set一些点,但重复查找确实减慢了速度.我想切换到unordered_set.
所以,我想有一个unordered_set的Point秒.通常,该集合可能包含例如80x24终端上的每个点= 1920点.我需要一个好的哈希函数.我想出了以下内容:
struct PointHash : public std::unary_function<Point, std::size_t>
{
result_type operator()(const argument_type& val) const
{
return val.row.value() * 1000 + val.col.value();
}
};
Run Code Online (Sandbox Code Playgroud)
但是,我不确定这是否真的是一个很好的哈希函数.我想要快速的东西,因为我需要很快进行很多查找.我可以使用更好的哈希函数,还是可以的?
如何设计大型标签系统的数据存储(如digg或美味)?
已经讨论过它,但它是关于集中式数据库的.由于数据应该增长,我们需要很快或稍后将数据分区为多个分片.因此,问题变成:如何为分区标记系统设计数据存储?
标记系统基本上有3个表:
Item (item_id, item_content)
Tag (tag_id, tag_title)
TagMapping(map_id, tag_id, item_id)
Run Code Online (Sandbox Code Playgroud)
如果表存储在一个数据库实例中,那么找到给定标记的所有项并找到给定项的所有标记都可以.如果我们需要将数据分区为多个数据库实例,那就不那么容易了.
对于表项,我们可以使用其键item_id对其内容进行分区.对于表Tag,我们可以使用其key_id对其内容进行分区.例如,我们希望将表Tag分区为K个数据库.我们可以简单地选择数字(tag_id%K)数据库来存储给定的标签.
但是,如何分区表TagMapping?
该TagMapping表代表了许多一对多的关系.我只能想象有重复.也就是说,TagMappping的相同内容有两个副本.一个用tag_id分区,另一个用item_id分区.在为给定项找到标签的场景中,我们使用带有tag_id的分区.如果要查找给定标记的项目,我们使用带有item_id的分区.
结果,存在数据冗余.并且,应用程序级别应该保持所有表的一致性.看起来很难.
有没有更好的解决方案来解决这个多对多的分区问题?
在c#中,给出以下代码:
public class Person
{
public int PersonID { get; set; }
public int Age { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和
List<Person> people = new List<Person>();
for (int i = 0; i != 15; i++)
{
Person p = new Person();
p.PersonID = i;
p.Age = i * 12;
p.Name = "Name " + i;
people.Add(p);
}
var sortedPeople = from qPeople in people
where qPeople.Age > 0 && qPeople.Age < 25 || …Run Code Online (Sandbox Code Playgroud) 无论如何还要问VIM搜索子目录的Fuzzy Finder插件吗?在我看来,无论我处于什么模式,它都要搜索当前目录,或者我必须在子目录名称上明确表示它才能潜入.
另一个插件人在这里提到了模糊查找器textmate插件.不幸的是,这个插件不适用于当前版本的vim-fuzzy finder,或者在我看来.
有什么建议?
TIA
奥利弗
有没有更好的方法来获取一个字符串,如"(123)455-2344"并从中得到"1234552344"而不是这样做:
var matches = Regex.Matches(input, @"[0-9]+", RegexOptions.Compiled);
return String.Join(string.Empty, matches.Cast<Match>()
.Select(x => x.Value).ToArray());
Run Code Online (Sandbox Code Playgroud)
也许一个正则表达式模式可以在一场比赛中做到这一点?我似乎无法创造一个来实现这一目标.
再一次相对简单的事情,但他们想要什么困惑.
在笛卡尔坐标系上求距离的方法是距离= sqrt [(x2-x1)^ 2 +(y2-y1)^ 2]
但我怎么在这里申请?
//Requires: testColor to be a valid Color
//Effects: returns the "distance" between the current Pixel's color and
// the passed color
// uses the standard method to calculate "distance"
// uses the same formula as finding distance on a
// Cartesian coordinate system
double colorDistance(Color testColor) const;
Run Code Online (Sandbox Code Playgroud)
颜色类定义了颜色:int红色,绿色,蓝色
我是否定义了类似'oldGreen''oldRed''oldblue'的东西,并获得那种距离?通过的颜色是红色,绿色,蓝色?
好的,所以我遇到了一个简单的textarea问题.我正在使用一种隐藏页面,使用JSON轻松编码一些数据.但是,我的所有文本输入都会在某处自动转义,我不知道在哪里.htmlentities()脚本启动时,我的所有$ _POST变量都会自动运行,如下所示:
$ani->i->post = $this->clean($_POST, true);
function clean($values, $unset = false) {
if (is_array($values)) {
foreach ($values as $key => $value) {
$newkey = strtolower($key);
$return[$newkey] = $this->clean($value);
unset($values[$key]);
}
return $return;
}
return htmlentities($values);
}
Run Code Online (Sandbox Code Playgroud)
\'当我将值重新放入textarea时,我会继续获取所有单引号.
我找不到任何可以添加斜线的地方,我不记得它是一个功能,当你从textarea提交时它们是自动添加的,如果是这样,为什么它们不会返回到单个什么时候回到textarea?我是否真的需要运行变量stripslashes()才能使它们恢复原始状态?
编辑:我的'test.php'文件如下:
<h1>To Be Encoded:</h1>
<form action="/test" method="post">
<textarea name="encode" rows="20" cols="50"><?= html_entity_decode($ani->i->post['encode']) ?></textarea>
<input type="submit" name="submit" value="Encode It!" />
</form>
<h1>Encoded By JSON:</h1>
<textarea name="encoded" rows="20" cols="50"><?= json_encode(html_entity_decode($ani->i->post['encode'])) ?></textarea>
<?php
die();
?>
Run Code Online (Sandbox Code Playgroud)
PS die()就在那里与我的框架兼容.
企业服务总线(ESB),.NET服务总线(Windows Azure AppFabric Service Bus),NServiceBus,RhinoServiceBus,MassTransit等.
我试图了解这些技术的共同点或共同点.
我参加了朱瓦尔·洛的基于.NET服务总线介绍今天早些时候,他说,.NET服务总线可以作为一个穷人版的ESB的,所以我会认为这意味着在.NET服务总线是不是ESB,其他任何一个都是真正的ESB吗?
如果其他任何一个都是真正的ESB,那么它们将成为真正的ESB而不是.NET服务总线?
我很快浏览了MySQL手册,但没有找到有关我的问题的确切信息.这是我的问题:如果我有一个InnoDB表A,其中有两个触发器由'AFTER INSERT ON A'和'AFTER UPDATE ON A'触发.更具体地说,例如:一个触发器定义为:
CREATE TRIGGER test_trigger AFTER INSERT ON A
FOR EACH ROW
BEGIN
INSERT INTO B SELECT * FROM A WHERE A.col1 = NEW.col1
END;
Run Code Online (Sandbox Code Playgroud)
你可以忽略BEGINAND 之间的查询END,基本上我的意思是这个触发器会在表B中插入几行,这也是一个InnoDB表.
现在,如果我启动一个事务,然后在表A中插入许多行,比如:10K行,如果没有与表A关联的触发器,那么所有这些插入都是原子的,这是肯定的.现在,如果表A与几个插入/更新触发器相关联,这些触发器将许多行插入/更新到表B和/或表C等,那么所有这些插入和/或更新是否仍然是原子的?
我认为它仍然是原子的,但它很难测试,我在手册中找不到任何解释.有谁可以证实这一点?
.net ×3
c# ×3
c++ ×3
php ×2
database ×1
esb ×1
escaping ×1
forms ×1
hash ×1
innodb ×1
linq ×1
mysql ×1
nservicebus ×1
partitioning ×1
python ×1
regex ×1
servicebus ×1
tagging ×1
tags ×1
text-parsing ×1
textarea ×1
transactions ×1
triggers ×1
vim ×1