下面的图片(放大,因此您最好看到差异)显示动态创建的编辑控件(上面的两个示例)和从对话框编辑器(下面的示例)创建的编辑控件之间的字体差异.如何使我动态创建的CEdit控件的字体看起来像默认(下面的示例)?
我创建了CEdit控件,如下所示:
obj->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
WS_CHILD | WS_VISIBLE | WS_TABSTOP,
rect.left, rect.top, rect.Width(), rect.Height(),
GetSafeHwnd(), reinterpret_cast<HMENU>(mId));
obj->SetFont(&mFont); // mFont was created in the Dialog Constructor
// with mFont.CreatePointFont(80, _T("MS Shell Dlg"));
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
当我想知道如何实现C++标准库中的算法时,我总是看看http://en.cppreference.com/w/cpp/algorithm,这是一个很好的来源.但有时我不理解一些实现细节,我需要解释为什么某些特定的方式.例如,在实现中std::copy_n
,为什么第一次赋值是在循环之外进行的,因此循环以1
?开头?
template< class InputIt, class Size, class OutputIt>
OutputIt copy_n(InputIt first, Size count, OutputIt result)
{
if (count > 0) {
*result++ = *first;
for (Size i = 1; i < count; ++i) {
*result++ = *++first;
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
另外:您是否知道可以解释可能的算法实现的站点?
在我写的一个小游戏中,我有一个Weapon
带有两个构造函数的类,一个用于获取一些参数来生成一个自定义武器,另一个用于获取一个默认武器CHAIN_GUN
:
Weapon::Weapon (void) {
// Standard weapon
*this = getWeapon(CHAIN_GUN);
return;
}
Run Code Online (Sandbox Code Playgroud)
问题:使用*this
和operator=
初始化课程是否会产生任何负面影响?
我正在寻找最快的距离变换算法.
根据这个网站http://homepages.inf.ed.ac.uk/rbf/HIPR2/distance.htm,它描述了:"距离变换可以使用聪明的算法在两次通过中更有效地计算(例如Rosenfeld和Pfaltz 1968)."
搜索周围,我发现:"Rosenfeld,A和Pfaltz,J L. 1968.数字图片上的距离函数.模式识别,1,33-61."
但我相信我们应该拥有比1968年更好更快的算法?事实上,我找不到1968年的来源,所以任何帮助都受到高度赞赏.
为什么使用新标准删除了默认参数?我经常构造一个这样的矢量变量:std::vector<my_pod_struct> buf(100)
.我想我会用C++ 11编译器得到编译器错误.
explicit vector( size_type count,
const T& value = T(), /* until C++11 */
const Allocator& alloc = Allocator());
vector( size_type count,
const T& value, /* since C++11 */
const Allocator& alloc = Allocator());
Run Code Online (Sandbox Code Playgroud) 这是我在网上发现的一个有趣的问题.给定一个包含n
数字的数组(没有关于它们的信息),我们应该在线性时间内预处理数组,这样我们就可以及时返回k
最小的元素O(k)
,当我们给出一个数字时1 <= k <= n
我和一些朋友一直在讨论这个问题,但没有人能找到解决方案; 任何帮助,将不胜感激!
建议我有一个模板功能,如下所示:
template<class T>
void doSomething()
{
T a; // a is correctly initialized if T is a class with a default constructor
...
};
Run Code Online (Sandbox Code Playgroud)
但是如果T是原始类型,则变量a未初始化.我可以写T a(0),但如果T是一个类,这不起作用.有没有办法在两种情况下初始化变量(T == class,T == int,char,bool,...)?
我在面试中遇到的算法问题上有一个问题,我似乎无法弄明白.我理解它应该如何工作,但无法通过算法对其进行排序.
因此,假设一家公司交易油桶,并且一次只能保留一个油桶.假设公司知道一年中每天的每桶价格.所以它作为一个数组传递.如何编写算法来查找何时买卖?
以下是简化为期5天的示例:
70 74 73 72 76
分别为星期一至星期五.
这里最好的事情是周二(74)周二买入卖出(74)然后周四买入(72)并在周五卖出(76).应该递归接近吗?我真的想解决这个问题.
谢谢,
我有一个脚本导出环境变量并启动一些下标.
export LOGLEVEL="1"
/home/myuser/bin/myscript1.sh
/home/myuser/bin/myscript2.sh
Run Code Online (Sandbox Code Playgroud)
LOGLEVEL
可用于下标的进程startet.如何更改环境变量LOGLEVEL
?
我试图设置变量,export LOGLEVEL="5"
但这不起作用.
这个问题使我不确定将一个向量附加到自身.所以问题是:遵循代码行做我所期望的,但它是否符合标准?
vec.reserve(vec.size() * 2):
vec.insert(vec.end(), vec.begin(), vec.end());
Run Code Online (Sandbox Code Playgroud)
以下(不reserve()
)仍然有效,是否符合标准?
vec.insert(vec.end(), vec.begin(), vec.end());
Run Code Online (Sandbox Code Playgroud)
还是实施依赖?