我正在使用Valgrind 3.3.1和Massif工具来分析C++应用程序的堆,我想知道是否有一个图形工具来检查文本输出文件.
谢谢你的任何建议.
想象一下,我有一个C++类Foo和一个类Bar,它必须用一个构造函数创建,其中传递一个Foo指针,这个指针意味着在Bar实例生命周期中保持不变.这样做的正确方法是什么?
事实上,我认为我可以像下面的代码一样编写,但它不能编译..
class Foo;
class Bar {
public:
Foo * const foo;
Bar(Foo* foo) {
this->foo = foo;
}
};
class Foo {
public:
int a;
};
Run Code Online (Sandbox Code Playgroud)
任何建议都是受欢迎的.
空UDP数据报的大小是多少?那个空TCP包呢?
我只能找到有关MTU的信息,但我想知道它们的"基本"大小是什么,以便估计它们之上的协议的带宽消耗.
想象我有一堆C++相关的类(所有扩展相同的基类并提供相同的构造函数),我在一个公共头文件(我包括)中声明,以及它们在其他一些文件中的实现(我编译和链接静态作为我的程序构建的一部分).
我希望能够实例化其中一个传递名称,这是一个必须传递给我的程序的参数(作为命令行或编译宏).
我看到唯一可行的解决方案是使用宏:
#ifndef CLASS_NAME
#define CLASS_NAME MyDefaultClassToUse
#endif
BaseClass* o = new CLASS_NAME(param1, param2, ..);
Run Code Online (Sandbox Code Playgroud)
这是唯一有价值的方法吗?
我正在使用STL映射数据结构,此时我的代码首先调用find():如果键以前不在映射中,则调用insert()它,否则它什么都不做.
map<Foo*, string>::iterator it;
it = my_map.find(foo_obj); // 1st lookup
if(it == my_map.end()){
my_map[foo_obj] = "some value"; // 2nd lookup
}else{
// ok do nothing.
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有比这更好的方法,因为据我所知,在这种情况下,当我想插入一个尚未出现的密钥时,我在地图数据结构中执行2次查找:一次用于查找( ),insert()中的一个 (对应于operator []).
提前感谢任何建议.
我正在尝试使用C++ STD TechnicalReport1扩展来生成正常分布后的数字,但是这段代码(改编自本文):
mt19937 eng;
eng.seed(SEED);
normal_distribution<double> dist;
// XXX if I use the one below it exits the for loop
// uniform_int<int> dist(1, 52);
for (unsigned int i = 0; i < 1000; ++i) {
cout << "Generating " << i << "-th value" << endl;
cout << dist(eng) << endl;
}
Run Code Online (Sandbox Code Playgroud)
只打印1"Generating ..."日志消息,然后永远不会退出for循环!如果我使用我注释掉的发行版,它会终止,所以我想知道我做错了什么.任何的想法?
非常感谢!
我想知道在C++标准库中是否有任何高斯分布数生成器,或者是否有任何代码片段可以通过.
提前致谢.
我想知道:1)如果我用SHA-512 => 计算一些数据的摘要,导致64字节的散列2)然后我用RSA-1024 => 签署这个散列,所以一个128字节的块,这是大于摘要的64个字节
=>这是不是意味着我的签名哈希到底是 128字节?
非常感谢任何信息.
我有一个应用程序,它在执行期间创建某种类型的对象(比如"Foo"类),跟踪一些统计信息,并将它们插入到两个STL映射中的一个或两个中,例如:
map<Foo*, int> map1;
map<Foo*, int> map2;
Run Code Online (Sandbox Code Playgroud)
我想知道删除Foo对象的最佳方法是什么.目前我的解决方案是迭代map1和map2,并将Foo指针放入一个集合中,然后在这个集合上进行交互并在每个集合上调用delete.
有没有更有效的方法,可能使用auto_ptr?如果是这样,因为auto_ptr <>对象不能存储在STL容器中?
提前致谢.