我正在努力为自己提出一些一致的规则,以便何时在C++程序中使用'auto'.这是我的pro/con列表,也许你可以通过给我你的意见来帮助我.
优点:
'auto'适用于避免复杂和大型模板声明(例如auto的经典用例,用于在STL容器上定义迭代变量)
'auto'适用于面向未来的代码.例如,如果我有一个int数组并且我想将它更改为无符号整数,如果我在引用该数组的元素时使用'auto',则会自动更新.当然,如果我为数组使用了typedef,那也会发生.
缺点:
'auto'使代码难以阅读.我不知道声明是指针还是值.我不知道它是否有构造函数和析构函数.
'auto'让我很懒.我可以忘记类型,只需编写代码.但在C++中,类型对程序的语义非常重要.
你们什么时候使用Auto?你何时不喜欢使用它?
我刚刚在平台堆栈中的"较低级别"开始了一项新任务,我开始使用windbg.到目前为止,我对调试器的纯粹功能非常满意.但是,我希望它只是保存我的会话默认值,就像VS调试器那样.我想要的是每当我".restart"或重新打开windbg时,它就像我离开它一样工作:相同的bp,相同的sxe状态,相同的文件在同一个地方打开,等等.
我知道"保存工作区"似乎做了我想要的,但它是手动的,每次我改变工作区状态时都必须这样做.
有没有办法让windbg自动执行此操作?
我有命名为"A","B","C"等我需要形成具有名称"A"的表,"B","C"为第一列的片材XLSX,和从一些数据每张纸中与第二列相同的单元格.例如,这可能看起来像:
Sheet Data
A =A!C2
B =B!C2
Run Code Online (Sandbox Code Playgroud)
在我的"数据"列中,是否有某种方法可以从"工作表"列中引用名称"A"和"B",因此我可以在一次填充forumla并在我添加更多工作表时更新它?
我是Linq的新手.我有这样的代码:
public class Data
{
public Dictionary<string,int> WordFrequency;
}
List<Data> dataList;
Run Code Online (Sandbox Code Playgroud)
我想要的是一个聚合字典,它为整个Data对象列表组合WordFrequency.我知道如何使用循环(迭代List,然后遍历每个Dictionary),我的问题是,Linq语法是什么?谢谢.
编辑:这是我的(未经测试的)循环方法,所以你可以看到我的意思.
public static Dictionary<string, int> Combine()
{
Dictionary<string, int> result;
foreach (Data data in DataList)
{
foreach (string key in data.WordFrequencies.Keys)
{
if(!result.ContainsKey(key))
result[key] = 0;
result[key] += data.WordFrequencies[key];
}
}
}
Run Code Online (Sandbox Code Playgroud)