我有一个这样的文档:
{
_id:"43434",
heroes : [
{ nickname : "test", items : ["", "", ""] },
{ nickname : "test2", items : ["", "", ""] },
]
}
Run Code Online (Sandbox Code Playgroud)
可以予$set所述的第二元件items嵌入对象的阵列中的阵列heros与nickname "test"?
结果:
{
_id:"43434",
heroes : [
{ nickname : "test", items : ["", "new_value", ""] }, // modified here
{ nickname : "test2", items : ["", "", ""] },
]
}
Run Code Online (Sandbox Code Playgroud) 目前我正在使用设计,当服务器读取前4个字节的流然后在头解码后读取N个字节.
但我发现第一次async_read和第二次读取之间的时间是3-4毫秒.我刚从回调中打印出控制台时间戳进行测量.我总共发送了10个字节的数据.为什么需要这么多时间阅读?
我在调试模式下运行它,但我认为1个调试连接并不是因为从socket读取之间有3毫秒的延迟.也许我需要另一种方法来削减"数据包"上的TCP流?
更新:我在这里发布了一些代码
void parseHeader(const boost::system::error_code& error)
{
cout<<"[parseHeader] "<<lib::GET_SERVER_TIME()<<endl;
if (error) {
close();
return;
}
GenTCPmsg::header result = msg.parseHeader();
if (result.error == GenTCPmsg::parse_error::__NO_ERROR__) {
msg.setDataLength(result.size);
boost::asio::async_read(*socket,
boost::asio::buffer(msg.data(), result.size),
(*_strand).wrap(
boost::bind(&ConnectionInterface::parsePacket, shared_from_this(), boost::asio::placeholders::error)));
} else {
close();
}
}
void parsePacket(const boost::system::error_code& error)
{
cout<<"[parsePacket] "<<lib::GET_SERVER_TIME()<<endl;
if (error) {
close();
return;
}
protocol->parsePacket(msg);
msg.flush();
boost::asio::async_read(*socket,
boost::asio::buffer(msg.data(), config::HEADER_SIZE),
(*_strand).wrap(
boost::bind(&ConnectionInterface::parseHeader, shared_from_this(), boost::asio::placeholders::error)));
}
Run Code Online (Sandbox Code Playgroud)
如您所见,unix时间戳在3-4毫秒内有所不同.我想了解为什么在parseHeader和parsePacket之间经过这么多时间.这不是客户端问题,摘要数据是10个字节,但我不能发送更多,延迟恰好是在调用之间.我正在使用Flash客户端版本11.我所做的只是通过打开的套接字发送ByteArray.我不确定客户的延误.我一次发送所有10个字节.我如何调试实际延迟的位置?
为什么std::uniform_real_distribution比rand()随机数发生器更好?有人可以举个例子吗?
我尝试使用g ++ 4.4在Debian上的远程服务器上使用boost库编译小的.cpp文件.我为此目的使用Netbeans.我的家用机器在Windows 7上.解决了链接下一个代码的一些问题
#include <boost/timer/timer.hpp>
#include <iostream>
#include <string>
int main()
{
boost::timer::auto_cpu_timer ac; //line 5
return 0; //line 6
}
Run Code Online (Sandbox Code Playgroud)
产生2个错误:
第5 undefined reference to boost::timer::auto_cpu_timer::auto_cpu_timer(short)'
行:第6行:undefined reference to boost::timer::auto_cpu_timer::~auto_cpu_timer()'
如果我使用标题boost/thread.hpp但是对于线程构造函数/析构函数,结果相同.但是例如boost/shared_ptr编译没有任何问题.在neatbeans中的结果编译命令是
g++ -m64 -I/usr/include/boost/boost_1_49_0 -lboost_system -o dist/Debug/GNU-Linux-x86/test build/Debug/GNU-Linux-x86/main.o
-L/usr/include/boost/boost_1_49_0/stage/lib -Wl,-rpath /usr/include/boost/boost_1_49_0/stage/lib build/Debug/GNU-Linux-x86/main.o
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我有文件喜欢
{
id : 100,
heros:[
{
nickname : "test",
spells : [
{spell_id : 61, level : 1},
{spell_id : 1, level : 2}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我不能$set拼的level : 3与spell_id : 1内spells那里面heros有绰号"测试我尝试此查询:
db.test.update({"heros.nickname":"test", "heros.spells.spell_id":1},
{$set:{"heros.spells.$.level":3}});
Run Code Online (Sandbox Code Playgroud)
我看到的错误是
无法使用字符串字段名称附加到数组[spells]感谢您的帮助.
$("a[href $='.pdf']" ).addClass("linkIconPDF");
$("a[href *='.pdf#']").addClass("linkIconPDF");
$("a[href *='.pdf;']").addClass("linkIconPDF");
$("a[href *='.pdf?']").addClass("linkIconPDF");
$("a[href $='.txt']" ).addClass("linkIconTXT");
$("a[href *='.txt#']").addClass("linkIconTXT");
$("a[href *='.txt;']").addClass("linkIconTXT");
$("a[href *='.txt?']").addClass("linkIconTXT");
Run Code Online (Sandbox Code Playgroud)
到目前为止一直很好,但如何简化以匹配任何文件类型?
是否可以进行一些正则表达式分组以匹配所有可能的文件类型?
$("a[href $='.([a-zA-Z0-9]{2,4})']" ).addClass("linkIcon$1");
Run Code Online (Sandbox Code Playgroud)
我正在Keras建立和训练我的模型.模特看起来像这样:
inputs = Input(shape=(input_size, 3), dtype='float32', name='input')
lstm1 = LSTM(128, return_sequences=True)(inputs)
dropout1 = Dropout(0.5)(lstm1)
lstm2 = LSTM(128)(dropout1)
dropout2 = Dropout(0.5)(lstm2)
outputs = Dense(output_size, activation='softmax', name='output')(dropout2)
Run Code Online (Sandbox Code Playgroud)
在创建检查点之前,我的模型可以很好地预测类(softmax之后的类分布):
[[ 0.00117011 0.00631532 0.10080294 0.84386677 0.04784485]]
Run Code Online (Sandbox Code Playgroud)
但是下一个代码之后:
all_saver = tf.train.Saver()
sess.run(tf.global_variables_initializer())
print save_path + '/model_predeploy.chkp'
all_saver.save(sess, save_path + '/model_predeploy.chkp', meta_graph_suffix='meta', write_meta_graph=True)
tf.train.write_graph(sess.graph_def, save_path, "model.pb", False)
Run Code Online (Sandbox Code Playgroud)
并使用它冻结它
bazel-bin/tensorflow/python/tools/freeze_graph --input_graph=/Users/denisermolin/Work/Projects/MotionRecognitionTraining/model/graph/model.pb --input_checkpoint=/Users/denisermolin/Work/Projects/MotionRecognitionTraining/model/graph/model_predeploy.chkp --output_graph=/Users/denisermolin/Work/Projects/MotionRecognitionTraining/model/graph/output.pb --output_node_names=Softmax --input_binary=true
Run Code Online (Sandbox Code Playgroud)
然后加载它
graph = load_graph(args.frozen_model_filename)
# We can verify that we can access the list of operations in the graph
for …Run Code Online (Sandbox Code Playgroud) 昨天我试图使用std::unordered_map,这段代码混淆了我使用了多少内存.
typedef list<string> entityId_list;
struct tile_content {
char cost;
entityId_list entities;
};
unordered_map<int, tile_content> hash_map;
for (size_t i = 0; i < 19200; i++) {
tile_content t;
t.cost = 1;
map[i] = t;
}
Run Code Online (Sandbox Code Playgroud)
所有这些代码部分都是在MS VS2010中以调试模式编译的.我在任务管理器中看到的是大约1200 kb的"干净"过程,但填充后hash_map它使用了8124 kb的内存.这是正常的行为unordered_map吗?为什么要使用这么多内存?
我有两个关于下面程序的问题:1.程序是否只创建动态元素(类型矩形和六边形),还是指向它们的指针是动态的?
2.为什么程序最后没有删除.例如这样的事情:(如果我正确地假设只有元素是动态的..)
for(i=0;i<3;i++)
delete shapeArray[i];
Run Code Online (Sandbox Code Playgroud)
非常感谢,这个网站帮助了我很多老师无法帮助的事情!使然
该计划是:
int main()
{
// Create array of pointers to Shapes of various types.
const int NUM_SHAPES = 3;
Shape * shapeArray[] = { new Hexagon(),
new Rectangle(),
new Hexagon()
};
// Set positions of all the shapes.
int posX = 5, posY = 15;
for (int k = 0; k < NUM_SHAPES; k++)
{
shapeArray[k]->setPosition(posX, posY);
posX += 10;
posY += 10;
};
// Draw all the shapes at their positions.
for (int …Run Code Online (Sandbox Code Playgroud) long long r = 0;
long long k = 0;
for (; k < 9999999999999; k++)
{
for (long long i = 0; i < 9999999999999; i++)
{
for (long long j = 0; j < 9999999999999; j++)
{
r = (r + (i * j) % 100) % 47;
if (r != 0)
{
r++;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
此代码在i3Core上以0.000001壁秒执行,在i7Core boost::timer::auto_cpu_timer上检查.
但是对于visual studio 2010来说,它似乎在无限的时间里运行.
GCC或VS出了什么问题?GCC优化太多了吗?
我有这个小模板类:
namespace emple {
template <class LinkedClass>
class LinkedInList
{
public:
LinkedInList()
{
active = false;
}
~LinkedInList(){}
LinkedClass* getNext() const
{
return next;
}
void setNext(LinkedClass* const next_)
{
next = next_;
}
void setActive(bool state)
{
active = state;
}
bool isActive()
{
return active;
}
private:
LinkedClass* next;
bool active;
};
};
Run Code Online (Sandbox Code Playgroud)
编译时我收到此错误:
类模板已经定义.
我究竟做错了什么?
我有一小段代码
boost::asio::ip::tcp::no_delay option(true);
boost::asio::ip::tcp::socket* sock = new boost::asio::ip::tcp::socket(ios);
sock->set_option(option);
_session_acceptor.async_accept(*sock,
boost::bind(&server::playerAccept, this, sock, boost::asio::placeholders::error));
Run Code Online (Sandbox Code Playgroud)
如果我set_option在接受服务器之前调用套接字,则不接受任何连接。但如果我set_option在连接被接受后打电话。难道有什么魔法吗?
我必须找到与线段相交的所有瓷砖,但Bresenham的线算法不符合我的要求.我需要找到所有细胞.我不需要知道交叉点,只需要交叉点的事实.感谢帮助.
我想找到线的方向向量,并逐步找到通过瓦片大小划分的单元格.但我不知道如何选择正确的步长.我认为1 px步骤很糟糕.
c++ ×9
boost ×3
boost-asio ×2
mongodb ×2
optimization ×2
android ×1
architecture ×1
gcc ×1
javascript ×1
jquery ×1
keras ×1
math ×1
networking ×1
nosql ×1
random ×1
regex ×1
tensorflow ×1
visual-c++ ×1