我正在为我的vector成员变量预先分配一些内存.下面的代码是最小的部分
class A {
vector<string> t_Names;
public:
A () : t_Names(1000) {}
};
Run Code Online (Sandbox Code Playgroud)
现在在某个时间点,如果t_Names.size()等于1000.我打算增加规模100.然后如果它到达1100,再增加100等等.
我的问题是,在vector::resize()和之间做出选择vector::reserve().在这种情况下还有更好的选择吗?
编辑:我有一些精确的估计t_Names.我估计它要700到了800.然而,在某些(很少)情况下,它可以增长超过1000.
我有一种感觉,lambda的类型是一个函数指针.当我进行以下测试时,我发现它是错误的(演示).
#define LAMBDA [] (int i) -> long { return 0; }
int main ()
{
long (*pFptr)(int) = LAMBDA; // ok
auto pAuto = LAMBDA; // ok
assert(typeid(pFptr) == typeid(pAuto)); // assertion fails !
}
Run Code Online (Sandbox Code Playgroud)
上面的代码是否缺少任何一点?如果不是那么,typeof用auto关键字推导出的lambda表达式是什么?
var user = {};
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个setUsers()接受键/值对对象并初始化user变量的方法.
setUsers = function(data) {
// loop and init user
}
Run Code Online (Sandbox Code Playgroud)
数据如下:
234: "john", 23421: "smith", ....
Run Code Online (Sandbox Code Playgroud) 在C++中,您可以通过使用异常说明符指定函数可能会也可能不会抛出异常.例如:
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
Run Code Online (Sandbox Code Playgroud)
由于以下因素,我对实际使用它们表示怀疑:
你认为应该使用异常说明符吗?
请回答"是"或"否"并提供一些理由来证明您的答案.
我在Quora帖子中看到了以下代码:
#include <stdio.h>
struct mystruct { int enabled:1; };
int main()
{
struct mystruct s;
s.enabled = 1;
if(s.enabled == 1)
printf("Is enabled\n"); // --> we think this to be printed
else
printf("Is disabled !!\n");
}
Run Code Online (Sandbox Code Playgroud)
在C&C++中,代码的输出都是意外的,
被禁用 !!
虽然在那篇文章中给出了"符号位"相关的解释,但是我无法理解,我们如何设置某些内容然后它没有反映出来.
有人可以给出更详细的解释吗?
c c++ bit-fields signed-integer implementation-defined-behavior
有没有之间的任何其他差别throw()和noexcept除了被检查的运行时分别编译时间?
维基百科C++ 11文章表明不推荐使用C++ 03 throw说明符.
为什么这样,noexcept有足够的能力在编译时覆盖所有这些?
让我们假设我们有一个结构,用于保存3个带有一些成员函数的双精度数:
struct Vector {
double x, y, z;
// ...
Vector &negate() {
x = -x; y = -y; z = -z;
return *this;
}
Vector &normalize() {
double s = 1./sqrt(x*x+y*y+z*z);
x *= s; y *= s; z *= s;
return *this;
}
// ...
};
Run Code Online (Sandbox Code Playgroud)
这有点简单,但我相信你同意类似的代码.这些方法可以方便地链接,例如:
Vector v = ...;
v.normalize().negate();
Run Code Online (Sandbox Code Playgroud)
甚至:
Vector v = Vector{1., 2., 3.}.normalize().negate();
Run Code Online (Sandbox Code Playgroud)
现在,如果我们提供了begin()和end()函数,我们可以在new-style for循环中使用Vector,比如循环遍历3个坐标x,y和z(你无疑可以构造更多"有用"的例子通过用例如String替换Vector):
Vector v = ...;
for (double x : v) { ... }
Run Code Online (Sandbox Code Playgroud)
我们甚至可以这样做:
Vector v = ...;
for …Run Code Online (Sandbox Code Playgroud) 我想记录用户网络摄像头和音频,并将其保存到服务器上的文件中.然后,这些文件可以提供给其他用户.
我没有播放问题,但是我在录制内容方面遇到了问题.
我的理解是.record()还没有编写getUserMedia 函数 - 到目前为止只提出了一个提议.
我想使用PeerConnectionAPI在我的服务器上创建一个对等连接.我知道这有点hacky,但我认为应该可以在服务器上创建一个peer并记录client-peer发送的内容.
如果可以,我应该能够将此数据保存为flv或任何其他视频格式.
我的偏好实际上是记录网络摄像头+音频客户端,以允许客户端在上传前不喜欢他们的第一次尝试时重新录制视频.这也将允许网络连接中断.我已经看到一些代码允许通过将数据发送到画布来记录网络摄像头中的各个"图像" - 这很酷,但我也需要音频.
这是我到目前为止的客户端代码:
<video autoplay></video>
<script language="javascript" type="text/javascript">
function onVideoFail(e) {
console.log('webcam fail!', e);
};
function hasGetUserMedia() {
// Note: Opera is unprefixed.
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
if (hasGetUserMedia()) {
// Good to go!
} else {
alert('getUserMedia() is not supported in your browser');
}
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
var video = document.querySelector('video');
var …Run Code Online (Sandbox Code Playgroud) class C {
using namespace std; // error
};
namespace N {
using namespace std; // ok
}
int main () {
using namespace std; // ok
}
Run Code Online (Sandbox Code Playgroud)
编辑:想知道背后的动机.
我有以下代码:
var str = "0x4000000000000000"; //4611686018427387904 decimal
var val = parseInt(str);
alert(val);
Run Code Online (Sandbox Code Playgroud)
我得到这个值:" 4611686018427388000",这是0x4000000000000060
我想知道JavaScript是否错误处理64位整数还是我做错了什么?
c++ ×8
c++11 ×3
javascript ×3
exception ×2
for-loop ×2
throw ×2
64-bit ×1
auto ×1
bit-fields ×1
c ×1
foreach ×1
function ×1
implementation-defined-behavior ×1
integer ×1
iteration ×1
key-value ×1
lambda ×1
loops ×1
namespaces ×1
noexcept ×1
numbers ×1
specifier ×1
typeof ×1
using ×1
vector ×1
webrtc ×1