查看n3092,在§6.5.4中,我们找到了基于范围的for循环的等价性.然后它继续说什么__begin和__end等于.它区分了数组和其他类型,我觉得这是多余的(也就是令人困惑).
它表示数组类型__begin和__end你所期望的:指向第一个的指针和指向一个结尾的指针.那么对于其他类型的,__begin并__end等于begin(__range)和end(__range),与ADL.命名空间std是关联的,以便在第24.6.5节中找到std::begin并std::end定义<iterator>.
但是,如果我们看的定义std::begin和std::end,他们是阵列以及容器类型都定义.并且数组版本与上面完全相同:指向第一个的指针,指向一个结尾的指针.
为什么需要将数组与其他类型区分开来,当为其他类型提供的定义同样适用时,查找std::begin和std::end?
为方便起见,有些删节报价:
§6.5.4基于范围的
for陈述- 如果_RangeT是一个数组类型,则begin-expr和end-expr分别是__range和__range + __bound,其中__bound是数组绑定的.如果_RangeT是未知大小的数组或不完整类型的数组,则程序格式错误.
- 否则,begin-expr和end-expr分别是begin(__ range)和end(__ range),其中begin和end通过参数依赖查找(3.4.2)查找.出于此名称查找的目的,名称空间std是关联的名称空间.
§24.6.5范围访问
Run Code Online (Sandbox Code Playgroud)template <class T, size_t N> T* begin(T (&array)[N]);返回:数组.
Run Code Online (Sandbox Code Playgroud)template <class T, size_t N> T* end(T (&array)[N]);返回:数组+ N.
我需要显示6个视图,每个视图应显示20个项目(UIButtons).我有一个大的NSArray,其中包含所有6个视图的项目.
例如,视图1应为项目0-19,视图2应为项目20-39.
我如何从阵列中提取相关范围?也许使用长度为20的NSRange,但是每个视图都需要更改起始位置...理想情况下没有switch语句:)
谢谢
是否可以创建一个图表(例如双Y轴线图)而不是Ranges,而是来自Array数据?如果是这样,怎么样?
有没有办法保存更改,例如更改跨越多个标记的HTML文本的背景,以便在再次加载时,所做的更改应反映在HTML页面中.
编辑:详细解释.
加载HTML页面时,使用范围对象和executeCommand选择并突出显示文本:
document.execCommand("BackColor", false, 'yellow');
Run Code Online (Sandbox Code Playgroud)
更改(将文本突出显示为黄色)保留,直到重新加载页面.但是当重新加载页面时,这些更改不存在.我想要的是以某种方式保存这些更改,如在本地数据库sqlite中,以便在重新加载/刷新页面时,应显示HTML页面中的更改.
知道如何做到这一点.我是否需要保存其范围起始偏移和结束偏移,可用于下次加载页面时创建范围.请提供您的见解.
我想生成介于0到10 ^ 12之间的10000个整数随机数.通常,代码看起来像这样:
x <- sample(0:1000000000000,10000,replace=T)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误消息:
Error in 0:1000000000000 : result would be too long a vector
Run Code Online (Sandbox Code Playgroud)
是否有一个更有效的内存方法,不必将10 ^ 12个整数放在一个向量中,只是为了获得大小为10000的样本?如果没有,有没有办法增加向量的最大大小?我正在使用具有12GB可用RAM的64位操作系统.
有没有办法使用一个循环,它取一个大列表中的前100项,与它们做一些事情,然后下一个100等,但当它接近结束时,它会自动缩短"100"步骤到剩余的项目.
目前我必须使用两个if循环:
for (int i = 0; i < listLength; i = i + 100)
{
if (i + 100 < listLength)
{
//Does its thing with a bigList.GetRange(i, 100)
}
else
{
//Does the same thing with bigList.GetRange(i, listLength - i)
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?如果不是,我将至少使"事物"成为一个函数,因此代码不必被复制两次.
我正在使用python3.3.我想获得一个slice对象并使用它来创建一个新range对象.
它是这样的:
>>> class A:
def __getitem__(self, item):
if isinstance(item, slice):
return list(range(item.start, item.stop, item.step))
>>> a = A()
>>> a[1:5:2] # works fine
[1, 3]
>>> a[1:5] # won't work :(
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
a[1:5] # won't work :(
File "<pyshell#9>", line 4, in __getitem__
return list(range(item.start, item.stop, item.step))
TypeError: 'NoneType' object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud)
嗯,这个问题很明显 - range不接受None作为一个值:
>>> range(1, 5, …Run Code Online (Sandbox Code Playgroud) 可信任的div存在很多问题,并且在可编辑的div中删除html和/或非内容可编辑内容.
在这里使用优秀的Tim Down的答案:如何删除具有属性contentEditable的div中的HTML元素?
使用Tim的代码,整个文本节点被删除.我需要这个像任何textarea一样工作,逐个字符删除,并确保html元素也可以退格.
我尝试了以下内容
else if(node){
var index = node.length-1;
if(index >= 0)
node.deleteData(index,1);
else
this.removeChild(node);
}
Run Code Online (Sandbox Code Playgroud)
但这显然无法正常工作.如果我在内容的最后,事情按预期工作.但是如果我把光标放在其他地方,它仍然会从最后删除.
我在这一点上输了,任何帮助都非常感激
我们可以用
for _, x := range []int{1, 2, 3} {
// do something
}
Run Code Online (Sandbox Code Playgroud)
迭代一个数组.
如何同时迭代两个数组?
在python中有类似跟随的东西吗?
for x, y in range([1, 2, 3], [4, 5, 6]):
print x, y
Run Code Online (Sandbox Code Playgroud) 我尝试执行以下代码但不能错误:未定义名称'xrange'
pages = (
requests.get(
build_group_request({
"offset": WINDOW_SIZE * i,
"count": WINDOW_SIZE,
"fields": "sex,interests,bdate"
})
).json()['response']['items']
for i in xrange(int(float(COUNT) / 100 + 1))
)
Run Code Online (Sandbox Code Playgroud)