如何将一些元素从第一个向量移动到第二个向量,元素将从第一个向量中删除?
如果我使用std::move,元素不会从第一个向量中删除.
这是我写的代码:
move(xSpaces1.begin() + 7, xSpaces1.end(), back_inserter(xSpaces2));
Run Code Online (Sandbox Code Playgroud) 我学习了C#,现在我正在学习C++.释放记忆的全部意义对我来说都是新的,我想知道什么时候我需要担心释放内存以及什么时候不需要.
根据我的理解,我唯一担心内存释放的情况是,当我使用newoperator时,所以我应该通过使用释放内存delete.
但在这些情况下,没有必要释放内存:
这是真的?
还有其他情况我不得不担心释放内存吗?
如何计算int的百分之几?
例如,我想从数字中得到30%,如果我将使用这个代码示例,我会得到错误的答案:
int number = 250;
int result = (number / 100) * 30;
Run Code Online (Sandbox Code Playgroud)
结果将是60,真正的答案是75,有没有办法计算它?
窗口是否会收到有关三次单击的消息,就像双击一样?我找不到与WM_LBUTTONTRIPLECLICKmessage 类似的WM_LBUTTONDBLCLK消息。
我想实现类似于 Microsoft Word 的东西,其中三次单击选择整个段落。如何检测我的窗口上的三次单击?
当我将我的win32程序中的数据复制到clipbord时,我是否应该将我复制到剪贴板的内存释放出来后将其粘贴到别处?或者系统对此负责.
是否有算法在std :: list中查找一系列值,可以执行以下操作:
list<char> text;
text.push_back('a');
text.push_back('b');
text.push_back('c');
text.push_back('d');
text.push_back('e');
text.push_back('f');
list<char> values;
values.push_back('c');
values.push_back('d');
values.push_back('e');
list<char>::iterator it = find(text.begin(), text.end(), values);
Run Code Online (Sandbox Code Playgroud) 当我通过Win32 API的DrawText函数绘制文本时
有没有办法确定将使用哪种字体,或确定字体大小,或粗体或斜体?
PS我用C#写的
我想在visual c#中创建一个dll,并在win32程序中使用它(visual c ++).根据我的理解,为了在Visual C++中添加dll文件,我还需要.h文件和.lib文件,但是当我在visual c#中创建一个类库时,我只得到dll文件.
是否可以在visual c#中创建.h文件和.lib文件?
我尝试运行此代码以在复制构造函数中将unique_ptr从第一个向量移动到另一个向量:
class Text
{
struct paragraph
{
int index;
string text;
};
vector<unique_ptr<paragraph>> paragraphs;
public:
Text()
{
paragraphs.push_back(unique_ptr<paragraph>(new paragraph));
}
Text(const Text & t)
{
for(int i = 0; i < (int)t.paragraphs.size(); i++)
{
paragraphs.push_back(move(t.paragraphs[i]));
}
}
};
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
1>c:\program files\microsoft visual studio 10.0\vc\include\xmemory(208): error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>'
1> with
1> [
1> _Ty=Text::paragraph
1> ]
// Etc.
Run Code Online (Sandbox Code Playgroud)