问题列表 - 第32907页

子串搜索面试问题

char* func( char* a, const char* b )
{
    while( *a )
    {
        char *s = a, *t = b;
        while( (*s++ == *t++) && *s && *t );

        if( *t == 0 )
            return a;
        a++;
    }
    return 0;       
}
Run Code Online (Sandbox Code Playgroud)

编写上面的代码是为了在字符串"a"中搜索字符串"b"的第一个实例.

上述程序有问题吗?

有没有办法提高它的效率?

c c++

2
推荐指数
2
解决办法
3251
查看次数

为什么我的"事件"总是为空?

我正在尝试连接一个新事件,但出于某种原因,"Changed"总是评估为null

    public class MyTreeViewItem : INotifyPropertyChanged

{
        private MyTreeViewItem _parent;

        public MyTreeViewItem(MyTreeViewItem parent)
        {
            _parent = parent;
        }

        private bool _checked;
        public bool Checked
        {
            get
            {
                return _checked;
            }
            set
            {
                if (value != _checked)
                {
                    _checked = value;
                    OnChanged("test");
                    OnPropertyChanged("Checked");
                }
            }
        }

        public event EventHandler Changed;

        public ObservableCollection<MyTreeViewItem> Children { get; set; }

    // Invoke the Changed event; called whenever list changes
    protected virtual void OnChanged(string test)
    {
        if (Changed != null)
            Changed(this, null);
    }
Run Code Online (Sandbox Code Playgroud)

订阅代码(PropertyChanged Works,Changed没有) …

c#

8
推荐指数
1
解决办法
2万
查看次数

被命名的RVO的可笑性?

我有一个看起来像这样的函数:

// Fetch 1 MB of data
void GetData(std::vector<char> & outData);
Run Code Online (Sandbox Code Playgroud)

1MB是夸大的,但我只是想说明最好避免不必要的副本.

如果我添加这个重载:

std::vector<char> GetData()
{
    std::vector<char> result;
    GetData(result);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

那么RVO有多大可能性呢?

c++ return-value-optimization

3
推荐指数
1
解决办法
287
查看次数

使对象在代码中动态实现接口

我想让这个测试通过 - 任何人都知道如何做到这一点?

public class Something
{
    public string Name {get; set}
}

public interface IWithId
{
    public Guid Id {get; set}
}

public class IdExtender 
{
    public static Object Extend(object toExtend)
    {
        ...?
    }
}

public class Tests 
{
    [Test]
    public void Should_extend_any_object()
    {
        var thing = new Something { Name = "Hello World!"};
        var extended = IdExtender.Extend(thing);
        Assert.IsTrue(extended is IWithId);
        Assert.IsTrue(extended.Id is Guid);
        Assert.IsTrue(extened.Name == "Hello World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我猜这样的事情可以用城堡动态代理,林福等完成......但是怎么样?

c# castle-dynamicproxy cop

7
推荐指数
1
解决办法
6932
查看次数

有没有办法通过联合访问各个位?

我正在写一个C程序.我想要一个我可以作为char访问的变量,但我也可以访问特定的位.我以为我可以使用像这样的联盟......

typedef union 
{
    unsigned char status;
    bit bits[8];
}DeviceStatus;
Run Code Online (Sandbox Code Playgroud)

但编译器不喜欢这个.显然你不能在结构中使用位.那么我该怎么做呢?

c bits structure unions

16
推荐指数
2
解决办法
3万
查看次数

python try/finally用于流控制

我确信这个概念已经出现过,但我找不到一个好的,简单的答案.使用try/finally是一种处理多个返回函数的坏方法吗?比如我有


try:
    if x:
        return update(1)
    else:
        return update(2)
finally:
    notifyUpdated()

这似乎比在临时变量中存储update()命令并返回它更好.

python flow-control try-catch-finally

5
推荐指数
2
解决办法
1481
查看次数

MSBuild - 添加要在构建中"清理"的文件

作为我的一个项目的一部分,有"BeforeBuild"任务最终生成一些文件.特别是,它将一个小的静态类(在项目中包含为"不编译")编译成它自己的可执行文件,然后执行它,传入一个外部输入文件,输出一个新生成的类,包含在项目中.

我将它编程为将中间文件放在项目$(OutDir)中,但发现在"Rebuild"(最终是"Clean")中,这些文件没有被拾取.经过一番思考后,我意识到最终生成的类放在$(ProjectDir)中也应该在"Clean"上删除.

对Microsoft.Common.targets的一些调查显示,中间路径(obj\build\assembly.FileListAbsolute.txt)中有一些"主列表",它们被查询要删除的文件.

是否有一些标准方法将我的新文件添加到MSBuild中的此列表中以清除它们,或者这种事情是否适合"BeforeClean"(或"AfterClean")目标覆盖?

msbuild visual-studio

21
推荐指数
1
解决办法
7095
查看次数

如何使Rails中的has_many关系无效

在我的Rails应用程序中,我有一个has_many关系的类.为了提高效率,我想做一些直接SQL来一次更新数据库中的许多行,然后我想将has_many关系标记为不再有效.如果以后的代码访问has_many关系,我希望它重新加载数据.但我显然想跳过SQL,除非有必要.

例如:

class Student
  has_many courses # may have a :condition clause or some such

  def some_method
    # For some reason, we want to change all courses in here, not
    # just a single row.
    ActiveRecord::Base.connection.execute("UPDATE courses SET location = #{new_location}")
    # Not sure if we'll later do anything with self.courses, so I need to invalidate
    # that relationship.  Could do self.courses.reload right here, but I don't want to
    # do the SQL if it isn't necessary; the cache only …
Run Code Online (Sandbox Code Playgroud)

activerecord caching ruby-on-rails

0
推荐指数
1
解决办法
1500
查看次数

如何在保留其程序集元数据的同时强烈签署外部DLL?

我在项目中使用了一些未签名的库.因为我的应用程序是强签名的,所以库也必须如此.

我用以下方式签署这些库:

"%PROGRAMFILES%\Microsoft SDKs\Windows\v7.1\Bin\ildasm.exe" /nobar /all /out=library.il library.dll
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe" /dll /key=MyKey.snk library.il
Run Code Online (Sandbox Code Playgroud)

问题是任何元数据(例如版本号)都会在现在签名的DLL中丢失.这是一个问题,因为现在库之间的某些依赖关系被破坏了.如何保留版本号而不需要实际编译这些库的源代码?

UPDATE

它实际上是一个显示此问题的特定DLL,我发现它是使用ILMerge构建的.也许这就是问题所在.需要明确的是:ILMerge生成的DLL确实具有正确的元数据,只有在反汇编和重组后,元数据才会消失.

更新2

我在Reflector中打开了DLL,看起来至少版本号仍在那里.我一直在使用Windows资源管理器中的文件属性对话框/详细信息选项卡进行检查.所以我认为这是缺少的清单.

.net assembly-signing ilasm

6
推荐指数
1
解决办法
1805
查看次数

R中的元素均值

在R中,我有两个向量:

a <- c(1, 2, 3, 4)
b <- c(NA, 6, 7, 8)
Run Code Online (Sandbox Code Playgroud)

如何找到两个向量的元素均值,删除NA,没有循环?即我想得到的矢量

(1, 4, 5, 6)
Run Code Online (Sandbox Code Playgroud)

我知道这个功能mean(),我知道这个论点na.rm = 1.但我不知道如何把事情放在一起.可以肯定的是,实际上我有数千个带有NA的向量出现在不同的地方,因此任何依赖于维度的解决方案都不起作用.谢谢.

r mean

28
推荐指数
1
解决办法
2万
查看次数