我正在尝试在我的网站上在灯箱中制作自定义数据属性.我只是在Javascript中为一个元素制作它并且它工作正常,但我想让它在多个元素中工作.
它现在是如何工作的:我有一个id为"image-1"的"a"元素,我想让javascript识别id image-2,3,4 ...并从自定义属性中显示正确的数据.请注意,我无法使用onclick,因为它使灯箱停止工作.
这是HTML:
<div class="col-xs-12 col-sm-4 col-md-3 col-lg-3">
<div class="thumbnail grid-wrapper thumbnail-single">
<a id="image-1" href="img/photo2.jpeg" data-tags="<li>t31232est</li> <li>test</li>" data-fb="http://test1.pl" data-tt="http://test2.pl" data-gplus="http://te23432st3.pl" data-lightbox="roadtrip" data-title="This is a caption. This is a caption This is a caption This is a caption"><img src="img/photo2.jpeg" class="img-responsive" alt="..."></a>
</div>
</div>
<div class="col-xs-12 col-sm-4 col-md-3 col-lg-3">
<div class="thumbnail grid-wrapper thumbnail-single">
<a id="image-2" href="img/photo3.jpg" data-tags="<li>test</li> <li>test</li>" data-fb="http://test55.pl" data-tt="http://test253342.pl" data-gplus="http://tes32423t3.pl" data-lightbox="roadtrip" data-title="This is a caption. This is a caption This is a caption This is a caption"><img src="img/photo3.jpg" …
Run Code Online (Sandbox Code Playgroud) 我必须读取一个文件,其中存储了一个带有汽车的矩阵(1 = BlueCar,2 = RedCar,0 = Empty).
我需要编写一个算法来以这种方式移动矩阵的汽车:
该文件被读出之前,我不知道矩阵的大小,如果它是密集或稀疏,所以我要实现两个数据结构(一个用于密,一个用于稀疏)和两种算法.
我需要尽可能达到最佳的时间和空间复杂性.
由于未知的矩阵大小,我认为将数据存储在堆上.
如果矩阵密集,我想使用类似的东西:
short int** M = new short int*[m];
short int* M_data = new short int[m*n];
for(int i=0; i< m; ++i)
{
M[i] = M_data + i * n;
}
Run Code Online (Sandbox Code Playgroud)
通过这种结构,我可以分配一个连续的内存空间,并且访问起来也很简单M[i][j]
.
现在问题是为稀疏情况选择的结构,我还必须考虑如何以最简单的方式将汽车移动通过算法:例如,当我评估汽车时,我需要轻松找到,如果在下一个位置(向下或向右)有另一辆车或如果它是空的.
最初我想要定义继承自一般Car对象的BlueCar和RedCar对象.在这个对象中,我可以保存矩阵坐标,然后将它们放入:
std::vector<BluCar> sparseBlu;
std::vector<RedCar> sparseRed;
Run Code Online (Sandbox Code Playgroud)
否则我可以这样做:
vector< tuple< row, column, value …
Run Code Online (Sandbox Code Playgroud) 我有一个List<bool>
我想要转换为byte[]
.我该怎么做呢?
list.toArray()
创造一个bool[]
.
我分配了大量的双打
double[] x = new double[ n ];
Run Code Online (Sandbox Code Playgroud)
其中n很大,我想避免初始化以节省时间.可能吗?
我最近在基类上引入了一个用于单元测试目的的接口,并遇到了一个奇怪的问题.这是最小的可重现场景:
interface IBase
{
string Text { get; }
}
interface IChild : IBase
{
}
class Base : IBase
{
public string Text { get { return "Base"; }}
}
class Child : Base, IChild
{
public new string Text { get { return "Child"; }}
}
static void Main(string[] args)
{
var child = new Child();
Console.WriteLine(child.Text); // Outputs "Child"
Console.WriteLine((child as Base).Text); // Outputs "Base"
Console.WriteLine(((child as Base) as IBase).Text); // Outputs "Child"
}
Run Code Online (Sandbox Code Playgroud)
前两个Console.WriteLine
命令的输出是逻辑的,但是我不能接受最后一个命令的输出,它甚至 …
在这段代码中:
$scope.others=[some data...]
$scope.tab=[];
$scope.smt = function(x){
for(var i = 0; i < $scope.others; i++){
var el = angular.element(document.querySelector('#'+x));
if (el.hasClass("myClass")){
sel.push($scope.tab[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
JSHint抱怨:
"文件"未定义
我有一个方法返回一个对象的List <>.此方法需要一段时间才能运行.
private List<MyObject> GetBigList()
{
... slow stuff
}
Run Code Online (Sandbox Code Playgroud)
从4或5个来源调用此方法.所以,我想我会尝试使用async并等待在此列表构建时保持移动.我添加了这个方法:
public async Task<List<MyObject>> GetBigListAsync()
{
var resultsTask = GetBigList();
var resuls = await resultsTask;
return resuls;
}
Run Code Online (Sandbox Code Playgroud)
但是,在这一行:
var resuls = await resultsTask;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
List <MyObject>不包含GetAwaiter的定义,并且找不到接受类型为List <MyObject>的第一个参数的扩展方法'GetAwaiter'.
我错过了什么?
我们如何结合使用非空引用类型和选项模式?
假设我们有一个名为的选项模型MyOptions
。
需要这些选项的服务被IOptions<MyOptions> options
注入到构造函数中。
配置选项的过程IServiceCollection
如下:
services
.AddOptions<MyOptions>()
.Configure(options =>
{
options.Name = "ABC";
});
Run Code Online (Sandbox Code Playgroud)
现在,问题出在MyOptions
:
public sealed class MyOptions
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
会产生警告:
CS8618不可空的属性“名称”未初始化。考虑将属性声明为可为空。
Name
可空值,因为我们需要在任何地方放置传统的空值检查(这与非空值引用类型的目的相反)MyOptions
使用非空name
值创建要创建的类Configure
public string name { get; set; } = null!;
),因为那样我们就不能确保Name
设置了属性,而我们最终可能会null
在Name
属性中出现一个无法预期的属性(在服务内部)我还没有考虑其他选择?
使用Qt,我想要这个代码工作:
QList<QPair<QString, QString>> list;
foreach (QPair<QString, QString> pair, list)
{
}
Run Code Online (Sandbox Code Playgroud)
相反,我得到错误:
'pair':未声明的标识符
使用typedef
我可以使它工作,但这不是我想要的(除非这是唯一有效的):
typedef QPair<QString, QString> MyPair;
QList<MyPair> list;
foreach (MyPair pair, list)
{
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么第一个foreach不编译?
我知道已经存在许多类似的问题和答案,但我无法解决我的问题.
在我的大应用程序中,堆在某处被破坏,我无法找到它.我也使用像gflags这样的工具,但没有运气.
我在下面的示例中尝试了gflags,它会破坏堆的目的:
char* pBuffer = new char[256];
memset(pBuffer, 0, 256 + 1);
delete[] pBuffer;
Run Code Online (Sandbox Code Playgroud)
第2行堆被覆盖但是如何通过gflags,windbg等工具找到它.可能我没有正确使用gflags.
c# ×4
c++ ×2
algorithm ×1
arrays ×1
asp.net-core ×1
async-await ×1
boolean ×1
bytearray ×1
c#-8.0 ×1
html ×1
inheritance ×1
interface ×1
java ×1
javascript ×1
jquery ×1
jshint ×1
matrix ×1
qt ×1
vector ×1
windows ×1