std::map<std::string, std::string> myMap;
std::map<std::string, std::string>::iterator i = m_myMap.find(some_key_string);
if(i == m_imagesMap.end())
return NULL;
string *p = &i->first;
Run Code Online (Sandbox Code Playgroud)
最后一行有效吗?我想将这个指针p存储在其他地方,它对整个程序生命有效吗?但是如果我向这个地图添加更多元素(使用其他唯一键)或删除其他一些键会发生什么情况呢,它不会重新分配这个字符串(键值对),那么p将变为无效?
我正在使用C#HttpWebRequest来获取网页的一些数据.问题是在加载页面后使用javascript/ajax更新了一些数据,而我没有在响应字符串中获取它.有没有办法让webrequest等到页面中的所有脚本都已完成执行?
谢谢
阿米特
我正在寻找的是最好的方式,'如果这个列表太短,将它延长到9个元素并添加'选择4','选择5'等作为附加元素.另外,用'Choice x'替换任何'None'元素.也可以替换""和0.
一个示例转换将是
['a','b',None,'c']
Run Code Online (Sandbox Code Playgroud)
至
['a','b','Choice 3','c','Choice 5','Choice 6','Choice 7','Choice 8','Choice 9']
Run Code Online (Sandbox Code Playgroud)
我的初始代码滥用try/except并且有一个我没注意到的一个一个错误; 感谢joeforker和所有指出的人.根据评论,我尝试了两个同样测试良好的简短解决方案:
def extendChoices(cList):
for i in range(0,9):
try:
if cList[i] is None:
cList[i] = "Choice %d"%(i+1)
except IndexError:
cList.append("Choice %d"%(i+1)
Run Code Online (Sandbox Code Playgroud)
和
def extendChoices(cList):
# Fill in any blank entries
for i, v in enumerate(cList):
cList[i] = v or "Choice %s" % (i+1)
# Extend the list to 9 choices
for j in range(len(cList)+1, 10):
cList.append("Choice %s" % (j))
Run Code Online (Sandbox Code Playgroud)
我认为#2赢得更多pythonic,所以它是我将使用的那个.它易于理解和使用常见的结构.拆分步骤是合乎逻辑的,可以使人们更容易理解.
我是一个Java新手,我想知道,如果我有以下典型的Java代码
public class MyApp {
public static void main(String[] args) {
try {
// do stuff
} catch {
// handle errors
} finally {
// clean up connections etc.
}
}
}
Run Code Online (Sandbox Code Playgroud)
JVM是否保证finally块始终运行?为了理解我来自哪里,我习惯了C/C++程序,如果你取消引用一个NULL指针就可能崩溃,之后就不能运行任何代码了.
但是,由于我理解Java和整个GC /托管内存业务,所以没有空指针解除引用的东西,一切都是可捕获的预期,所以我的程序没有真正的崩溃方式可以让它跳过最后,或者在那里?例如,在Python中,我通常会这样做
try:
# do stuff
except AnExceptionIKnewMightHappen:
# react in an appropriate way
except:
# log that weird error I had not known could happen
Run Code Online (Sandbox Code Playgroud)
我没有通过我的代码就没有任何应用程序死亡.
当然,如果操作系统由于某种原因导致进程终止(或者如果某些东西杀死了整个系统,比如拉动插件),那么Java就无法做到.此外,从PHP我知道你无法防范的非可捕获错误,即使解释器在它发生之后仍然存在(至少它能够输出正确的消息).
编辑:为了清楚起见(这并没有被任何人误解),让我补充一点,我在寻找代码中的内容,这可能会导致最终被绕过.所以指向System.exit是一个有用的提醒,即使我不明白为什么我想要做那样的事情.
退出JVM是一种相当明显的方式,我认为这是一个外部原因.该注释指出你还必须记住在JVM和应用程序继续运行时退出的线程的可能性非常有用,因为即使现在我看起来也很明显,我没有想到它.
我对MVC比较新,所以这可能是一个新手问题.
我试图了解如何在一些看似不直接的情景中保持明确的关注点分离的最佳实践.
我现在正在看两种情况.想象一个非常基本的应用程序,让用户可以查看和编辑律师的在线个人资料.有一个动作/视图可以显示特定用户的个人资料,还有一个动作/视图可以编辑特定用户的个人资料.很容易想象一个漂亮而干净的Model类来表示用户配置文件的详细信息,可能是使用Entity Framework进行的,并映射到用户配置文件SQL表.
在用于显示用户配置文件的视图操作/视图中,在功能上,我需要一个允许用户编辑配置文件的按钮或链接.但这应该只对某些用户子集可用.例如,用户可以编辑自己的配置文件.此外,超级用户可以编辑任何人的个人资料.我的问题是视图在呈现特定配置文件时应该如何确定链接是否存在.我认为View包含逻辑以确定当前用户是否可以编辑当前配置文件是错误的.我应该向UserProfile模型类添加IsEditable属性吗?这并不悲惨,但也感觉不完全正确.我应该创建一个新的Model类来聚合UserProfile以及有关安全性的其他信息吗?
另一种情况......当编辑特定的配置文件时,可编辑的事物之一是特定律师的专业列表.可能的专业清单并不固定.如果视图想要在组合框中呈现它们,则需要从数据库中列出所有可能的特性.视图不应该直接从数据库中获取它们,所以我是否再次进行聚合模型事物并为View提供UserProfile和有效专业列表?
我想我想弄清楚的一般性问题是我应该适应创建大量特定于各个视图的小型Model类.每个类都包含该特定视图所需的较大域模型的各个不相关部分.
我一直想把这个问题想象一下.
(defn is-decimal [astr]
(if (. astr (indexOf (int \.)))
(Double/parseDouble astr)
(Integer/parseInt astr)))
Run Code Online (Sandbox Code Playgroud)
这就是我写的功能.is-decimal或者传递诸如"2.5"或"5"之类的东西或类似的东西,但它总是使用if第二个参数,而不是第三个参数.我(. astr (indexOf (int \.)))在REPL中测试过,它看起来工作正常,它在失败时返回-1,而在它失败时返回1.我相信这可能是问题所在.-1在Clojure中并不意味着错误.谁能想到解决这个问题的方法?
提前致谢.
编辑:谢谢你的帮助.在我写完之后,我有了一个主意.我编写了一个检查1和-1的谓词函数.正是我需要的.醒来后我不应该直接编码:
我有多个项目包含多个WCF服务引用.
我的WCF服务处于不稳定状态,因此我经常需要四处寻找并更新所有服务引用.
有没有办法实现这个单一行动?
当您打开该文件时,Visual Studio将在"错误列表"窗口中显示AS?X或HTML文件中的错误.但是,一旦关闭文件,错误列表中的错误就会被删除.
是否可以在一个操作中验证所有AS?X和HTML文件(理想情况下作为构建的一部分)并立即显示所有错误?
如何在T-SQL 2005中删除之前触发触发器?FOR实际上在事件发生后触发,它们似乎在TRIGGER函数中没有BEFORE参数.INSTEAD OF不是我想要的.我需要在删除记录之前触发.有任何想法吗?