如何使用boost :: ptr_map有效地使用BOOST_FOREACH(字符数/可读性)?
Kristo在他的回答中证明了可以将BOOST_FOREACH与ptr_map一起使用,但它并没有真正省去任何输入(或使我的代码真的更具可读性),而不是使用迭代器迭代ptr_map:
typedef boost::ptr_container_detail::ref_pair<int, int* const> IntPair;
BOOST_FOREACH(IntPair p, mymap) {
int i = p.first;
}
// vs.
boost::ptr_map<int, T>::iterator it;
for (it = mymap.begin(); it != mymap.end(); ++it) {
// doSomething()
}
Run Code Online (Sandbox Code Playgroud)
下面的代码就像我希望的那样.它遵循如何将BOOST_FOREACH与std :: map一起使用的标准方法.不幸的是,这不编译:
boost::ptr_map<int, T> mymap;
// insert something into mymap
// ...
typedef pair<int, T> IntTpair;
BOOST_FOREACH (IntTpair &p, mymap) {
int i = p.first;
}
Run Code Online (Sandbox Code Playgroud) 我有一个由特定模式包含的信息组成的文本.我唯一知道的是模式:"$ {template.start}"和$ {template.end}为了简单起见,我将$ {template.start}和$ {template.end}替换为"a"例.
因此,案文中的一个条目是:
aINFORMATIONHEREa
Run Code Online (Sandbox Code Playgroud)
我不知道这些条目中有多少是在文本中连接起来的.所以以下也是正确的:
aFOOOOOOaaASDADaaASDSDADa
Run Code Online (Sandbox Code Playgroud)
我想写一个正则表达式来提取"a"所包含的信息.
我的第一次尝试是:
a(.*)a
Run Code Online (Sandbox Code Playgroud)
只要文本中只有一个条目,它就可以工作.一旦有多个条目,就会因为.*
匹配所有内容而失效.因此,使用a(.*)a
on aFOOOOOOaaASDADaaASDSDADa
只会产生一个捕获组,其中包含文本的第一个和最后一个字符"a"之间的所有内容:
FOOOOOOaaASDADaaASDSDAD
Run Code Online (Sandbox Code Playgroud)
我想得到的是类似的东西
captureGroup(0): aFOOOOOOaaASDADaaASDSDADa
captureGroup(1): FOOOOOO
captureGroup(2): ASDAD
captureGroup(3): ASDSDAD
Run Code Online (Sandbox Code Playgroud)
能够从文本中提取每个条目并从每个条目中提取"a"之间包含的信息将是很棒的.顺便说一句,我正在使用Qt4的QRegExp类.
任何提示?谢谢!马库斯
之前已经看到过这个问题的多种变化.各种相关讨论:
可能还有其他人......
通过"理论计算机科学主题",我指的是诸如常规语言和非常规语言,抽取引理和语法之类的东西.
我熟悉有限自动机和正则表达式的实际应用,但是这些其他主题给我带来了更多问题,因为我没有看到任何真实世界的应用程序.
我的Java应用程序是通过java.dll在本机程序中启动的.此本机程序在Windows上作为服务启动.
以下选项已添加到JVM args以进行远程调试:
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
Run Code Online (Sandbox Code Playgroud)
在此配置中,无法从我的Eclipse工作区连接.如果程序是从命令行启动的,即不是作为服务启动,我可以连接到端口8787.
如何允许远程调试连接到此服务?
我在表格中有一个字段,名为确认类型为tinyint.我想通过这个语句插入值(1)但它不起作用可以任何一个帮助?
$connect= mysql_connect("localhost","root") or die ("Sorry, Can not connect to database");
mysql_select_db("login") or die (mysql_error());
$user=$_POST['staff'];
echo $user;
$query="SELECT * from users where username='$user' ";
$result=mysql_query($query,$connect) or die(mysql_error());
$row=mysql_fetch_array($result);
$uid=$row['userid'];
echo $uid;
$query="SELECT * from opt where userid='$uid' ";
$result=mysql_query($query,$connect) or die(mysql_error());
$row=mysql_fetch_array($result);
if($row['confirm']==0)
{
$query = "INSERT INTO opt (confirm) values(1)";
echo 'The user selected options has confirmed';
}
?>
Run Code Online (Sandbox Code Playgroud) 我想知道C++与SQL数据库有什么样的持久性解决方案?除了使用自定义SQL(并封装对DAO或类似的数据访问)之外,还有其他一些(更通用的)解决方案吗?
像一些通用库或框架(类似于Hibernate&co for Java和.NET)或其他东西?(我还没有想到的东西也欢迎提出建议)
编辑:是的,我正在寻找更多的ORM解决方案或类似的东西来处理SQL查询以及表和对象之间的关系,而不是数据库引擎本身.无论如何,谢谢你的所有答案!
我正在建立一个持续集成服务器(Hudson)来构建一个Java项目并运行相关的单元/集成测试.大多数这些测试访问数据库,测试数据保存在DbUnit XML文件中.
我正在寻找一种方法来自动保持测试数据库架构是最新的.目前,特定版本的SQL脚本存储在以发布版本命名的目录中:
????scripts
????0.1.0
????0.1.1
????0.1.2
????0.1.4
Run Code Online (Sandbox Code Playgroud)
例如,版本0.1.4的SQL脚本是
scripts\0.1.4\script-0.1.4.sql
Run Code Online (Sandbox Code Playgroud)
问题是这些脚本包含模式更改的混合(例如ALTER TABLE ...)和静态表的更改(例如,向USER_TYPE表添加新角色).
在单元测试的情况下,我只想应用模式更改,因为如上所述,单元测试的所有数据都保存在DbUnit XML文件中.虽然我可以将这两种类型的数据库更改分成不同的文件,但是在将版本应用于QA,生产等时,模式更改和数据更改之间通常需要以某种方式强制执行.
无论如何,这只是一个非常冗长的方式,询问是否有人提出了一种强大的方法来自动保持他们的测试架构是最新的?我知道Unitils有一些支持让测试模式保持最新,但我不确定它是否可以"忽略"SQL delta脚本中的数据更新语句.
原始问题:
WebResource.axd url生成有一个奇怪的错误.(它似乎与相当常见的"WebRsource.axd Padding无效且无法删除"问题有关).
我们有一个ASP.NET网页,在创建时,会向WebResource.axd添加一个脚本引用.
在这种情况下,我们看到WebResource.axd链接偶尔会变成某个点的垃圾,取而代之的是看似javascript的东西.更糟糕的是,网址生成失败似乎是不一致的.
在我们的例子中,链接应该(而且通常不会像):
/WebResource.axd?d=D-wd7RbHCvSp_p0mHAmE4g2&t=633464867255568315
Run Code Online (Sandbox Code Playgroud)
一切都很好.但是,我们收到用户记录的错误...以及他们尝试访问的网址(在一种情况下):
/WebResource.axd?d=D-wd7RbHCvS/../../images/icons/Ico_resize.gif')}}function%20ShowFilter_Manufacturer(){var%20div.......
Run Code Online (Sandbox Code Playgroud)
[该链接中剩余的已编码的javascript已被删除为无关]
更奇怪的是,我们从同一个用户那里快速连续获得了一些这些用户,他们显然正在尝试重新加载页面...每个网址略有不同.
/WebResource.axd?d=D-wd7RbHCvS<garbage>
/WebResource.axd?d=D-wd7RbHCvSp<garbage>
/WebResource.axd?d=D-wd7RbHCvSp_<garbage>
Run Code Online (Sandbox Code Playgroud)
在某些情况下,垃圾是编码的JavaScript,我已经看到了网址的一部分...完全空的参数字符串...我没有看到明显的模式.
顺便说一下,如果它是相关的,应该注意的是,我不相信这个WebResource不是一个除了在页面上包含某些功能时由.NET自动包含的股票WebResource ......在这种情况下,一个字段验证器.查看实际WebResource.axd的内容,可以看到非常标准的Javascript函数集,这些函数似乎是为处理泛型.NET事件而设计的.不是我们创造的任何东西.
有没有人见过这样的东西?(或者更好,是否有人理解为什么会发生这种情况,并提出消除它的方法?)
编辑0:一些其他信息:
第1项:在回答一个答案时,我们确保我们的脚本包含CDATA标签,因为我们的doctype是xhtml transitional:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)
不幸的是,尽管我们寄予厚望,但它似乎并没有解决问题.我们已经更多地注意到IE 8作为一个浏览器,这可以让人相信这是与浏览器相关的想法...也许是浏览器解析流的方式......但为什么我们会得到微妙的不同响应随后的尝试让我感到困惑.
第2项:事实证明,省略的部分似乎是相当规则的块.有人报告说他看到丢失了1k或4k的区块,而我(到目前为止......我只看了两个案例)会同意(我的两个数据都丢失了4096字节).
我有一个关于使用Linq To Sql开发的业务对象集成的问题,用于数据查询和与Sql Server Reporting Services集成.
我们有一组业务对象,用于查询使用Linq to SQL开发的几个后端数据库.生成的SQL是相对动态的(基于用户选择的条件)并涉及多个连接,一些内部,一些外部等.Linq to SQL对此非常有用.但是,在我们尝试在初始部署后使用SQL Reporting Services实现报表时,我们遇到了问题.我们无法将SSRS报告绑定到业务层.我们最终做的是获取从SQL事件探查器执行的SQL并创建存储过程,并使用报告中的存储过程.可以想象,当我们维护代码时,这成为一个问题,需要更新我们的业务层和存储过程.
我做了一些看,我发现自定义数据扩展似乎是一种方法来做到这一点.这是解决问题的方法吗?有没有人有更好的方法?有没有使用LINQ实现这样的解决方案的例子?
http://www.devx.com/dbzone/Article/31336
谢谢
假设您为一家突然决定进行自定义内部软件开发的大公司工作.此外,他们希望能够为客户提供成功的开发(如果有的话).
现在你负责它.
您认为构建成功的软件开发基础架构最重要的是什么?
更新:请不要回答您需要合适的人和正确的工具.这正是我正在寻找的..什么是正确的工具,你会先雇用什么类型的人加入你的团队?想想它,因为你将成为这一发展的领导者.
c++ ×3
java ×2
asp.net ×1
boost ×1
database ×1
frameworks ×1
hudson ×1
invalid-url ×1
linq-to-sql ×1
persistence ×1
php ×1
qt4 ×1
regex ×1
sql ×1
theory ×1
unit-testing ×1