我发现自己不会有私人课程.如果可能的话,所有候选私有类函数,而不是我放入未命名的命名空间,并将所有必要的信息作为函数参数传递.我没有一个合理的解释,为什么我这样做,但至少它对我来说更自然.因此,我需要在头文件中公开更少的内部细节.
你有什么看法 - 这是正确的做法吗?
我有一个预先计算的整数数组,它的固定大小为15M.我需要在程序启动时加载这些值.目前加载最多需要2分钟,文件大小约为130MB.是加速加载的方法吗?我也可以自由更改保存过程.
std::array<int, 15000000> keys;
std::string config = "config.dat";
// how array is saved
std::ofstream out(config.c_str());
std::copy(keys.cbegin(), keys.cend(),
std::ostream_iterator<int>(out, "\n"));
// load of array
std::ifstream in(config.c_str());
std::copy(std::istream_iterator<int>(in),
std::istream_iterator<int>(), keys.begin());
in_ranks.close();
Run Code Online (Sandbox Code Playgroud)
提前致谢.
解决了.使用接受答案中提出的方法.现在它只需要一眨眼.
全心全意感谢您的见解.
考虑下面的片段:
[DebuggerStepThrough]
private A GetA(string b)
{
return this.aCollection.FirstOrDefault(a => a.b == b);
}
Run Code Online (Sandbox Code Playgroud)
如果我使用F11,调试器不会跳过该函数,而是在ab == b处停止.
有没有办法跳过这个功能而不是使用F10?
C/C++有类似ReSharper/StyleCop的Visual Studio插件吗?
我每天都在使用ReSharper和StyleCop插件.刚刚开始了一个涉及C/C++编程的新项目.我想念这些插件的一些功能,比如代码格式化,使用更清晰和更好代码的提示/提示,文档/统一代码要求,优化包含等等....
我找不到关于未命名命名空间中的全局非静态变量的好解释.我尽可能地避免全局变量.在这个特殊情况下,我对纯粹理论方面的行为感兴趣.
假设以下代码:
在啊
namespace ai {
class Widget {
void DoSomething(int param);
};
}
Run Code Online (Sandbox Code Playgroud)
在a.cc
namespace {
int x;
void Helper() {
}
}
namespace ai {
void Widget::DoSomething(int param) {
x = param;
Helper();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我要创建同一个类Widget的两个实例,两个实例是否会共享相同的变量x?
如果类实例与不同的线程在同一个线程上,那么上述行为是否相同?
如果变量x是自定义类型而不是内置类型怎么办?
当变量x将被构造并且被破坏时?
sizeof(Widget)和这些变量之间有任何关系吗?
C++标准中定义了哪些方面,哪些方面没有?
任何其他考虑因素,例如"需要知道"该主题?也许任何人都可以提供好书参考(例如"Effective C++ ..")来阅读更多内容?
请考虑以下代码摘录:
typedef struct tagTHREADNAME_INFO {
DWORD dwType;
LPCTSTR szName;
DWORD dwThreadID;
DWORD dwFlags;
} THREADNAME_INFO;
const THREADNAME_INFO info = { 0x1000, threadName, CurrentId(), 0};
::RaiseException(kVCThreadNameException, 0,
sizeof(info) / sizeof(ULONG_PTR),
(ULONG_PTR*)&info);
Run Code Online (Sandbox Code Playgroud)
如何使用C++样式转换正确地转换为ULONG_PTR*?
ps它是平台相关的代码.
c++ ×5
namespaces ×2
add-on ×1
api-design ×1
c ×1
c# ×1
casting ×1
coding-style ×1
debugging ×1
resharper ×1
stl ×1
stream ×1