给定数组,a = [1,1,12,3,5,8,13,21]我可以切除前3个元素,如a[:3] 给予[1,1,2].我想要的是切断vlaue的元素i(例如,如果i=8我想要[1,1,12,3,5,8]或[1,1,12,3,5](我可以使用其中任何一个)).
这有效:
return a[:a.index(i)]
Run Code Online (Sandbox Code Playgroud)
但只有我给它一个数组中的值.
是否有一种干净的内置方式来做这件事,对缺失的价值案例做了些什么?
我有一组独特的向量(10k的价值).对于任何选定的列,我需要提取在该列中看到的值集,其中所有其他列都是给定值的行.
我希望在空间中提供一个亚线性(项目计数)和最多线性(所有项目的总大小)的解决方案,最好是仅存储项目的子线性额外空间.
我能得到那个还是更好?
BTW:它将从python访问,需要简单编程或成为现有常用库的一部分.
编辑:成本用于查找,并且不包括构建结构的时间.在进行第一次查询之前,所有将被索引的数据都可用.
看起来我在描述我正在寻找的东西方面做得不好,所以这里有一个接近的解决方案:
class Index:
dep __init__(self, stuff): # don't care about this O() time
self.all = set(stuff)
self.index = {}
for item in stuff:
for i,v in item:
self.index.getdefault(i,set()).add(v)
def Get(self, col, have): # this O() matters
ret = []
t = array(have) # make a copy.
for i in self.index[col]:
t[col] = i
if t in self.all:
ret.append(i)
return ret
Run Code Online (Sandbox Code Playgroud)
问题是,这给了真正糟糕的(O(n))最坏情况.
我正在编写一些代码来模拟一些电子设备并需要对一些晶体管进行建模.有谁知道有几种模型的资源?(或至少有几种具有高栅极阻抗和相当线性的模拟性能,因为这是我将需要的.)
股票组件的方程组和价值表将起作用,但具有C绑定的功能代码会更好.
我有一个遗留模板函数,我试图调用它具有一系列具有不同数量参数的函数指针的特化.我正在编写一个我自己的新模板函数,它采用一些任意类型的非捕获lambda,需要将它传递给另一个库.如果我直接执行此操作,则模板解析将失败.但是,如果我明确地将它转换为相关的函数指针类型,那么事情就可以了
那么问题是如何使我的模板代码从lambda的类型获取该函数指针类型或强制显式转换而不显式引用该类型.
有没有办法让一个零大小的类型只能隐式构造?
用例是通过大括号语法来防止结构的某些公共成员被初始化:
class Barrier { ... };
struct Foo {
int user_sets;
int* this_to;
Barrier _bar;
int *must_be_zero_init_by_linker;
};
Foo foo = {1}; // ok
Foo bar = {1, nullptr}; // ok
Foo baz = {1, nullptr, {}}; // must error
Run Code Online (Sandbox Code Playgroud)
编辑:另一个约束:Foo对象必须是链接器初始化的,因此它不能定义构造函数或私有成员.
特别是我正在寻找一个IP地址,我可以将其放入我的hosts文件中,这将破坏给定的DNS名称.现在我正在使用,127.0.0.1但如果我安装了任何服务,这将开始变得奇怪.
如何防止第三方程序联系给定服务器?
我需要测试一个DateTime是在各个单位的某个单位时间的开始.这是我现在使用的代码:
/// ignoring milliseconds all the way down
bool IsMinute(DateTime dt)
{
return dt.Second == 0;
}
bool IsHour(DateTime dt)
{
return dt.Second == 0 && dt.Minute == 0;
}
bool IsDay(DateTime dt)
{
return dt.Date == dt;
}
bool IsMonth(DateTime dt)
{
return dt.Date == dt && dt.Day == 1;
}
bool IsYear(DateTime dt)
{
return dt.Date == dt && dt.DayOfYear == 1;
}
Run Code Online (Sandbox Code Playgroud)
有任何改进的想法吗?
我有一大堆的是具有不同的含义很多的整数代码(我宁愿一个通用的解决方案,但对于一个具体的例子:某一天的 - 月月对比的最年与年等).我希望能够基于这些含义重载类构造函数.
例如
int a; // takes role A
int b; // takes role B
var A = new Foo(a); // should call one constructor
var B = new Foo(b); // should call another constructor
Run Code Online (Sandbox Code Playgroud)
现在很明显,这将无法工作,但如果我可以定义一个类型(而不仅仅是一个别名),int但是这个类型的名称是:
typedef int TypeA; // stealing the C syntax
typedef int TypeB;
Run Code Online (Sandbox Code Playgroud)
我可以做我需要的重载,让类型系统跟踪什么是什么.特别是这将允许我确保值不会混淆,例如,作为一年的函数返回的值不用作月中的日期.
有没有办法短的class或struct包装在C#这样做吗?
如果解决方案也适用于浮动和双打,那将是很好的.
我想使用Queue对树进行广度优先搜索
var q = new Queue<T>();
q.Enqueue(Root);
foreach(T root in q)
{
foreach(T t in root.Children)
q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了"在实例化枚举器之后修改了集合".例外.
我可以用C#类型吗?
编辑:一点点阅读让我觉得我可能做错了.
有没有办法使用foreach从队列中出队?
这工作但很难看(OMHO)
var q = new Queue<T>();
q.Enqueue(Root);
while(q.Count > 0)
{
T root = q.Dequeue();
foreach(T t in root.Children)
q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud) 以下使用seg-V崩溃:
// my code
int* ipt;
int bool set = false;
void Set(int* i) {
ASSERT(i);
ipt = i;
set = true;
}
int Get() {
return set ? *ipt : 0;
}
// code that I don't control.
struct S { int I, int J; }
int main() {
S* ip = NULL;
// code that, as a bug, forgets to set ip...
Set(&ip->J);
// gobs of code
return Get();
}
Run Code Online (Sandbox Code Playgroud)
这是因为虽然i它不是NULL仍然无效.如果调用代码从NULL指针获取数组索引操作的地址,则会发生同样的问题.
对此的一个解决方案是修剪低阶位: …
为什么不编译:
enum E { a, b}
typedef struct { int i; E e; } S;
int main(){return 0;}
Run Code Online (Sandbox Code Playgroud)
我在不同的系统上得到不同的错误.