如果我有一个包含重载==运算符函数的类,如何找出整个代码中这个重载运算符的使用位置?(除了在重载的==方法中放置一个断点,并查看代码是否会命中它.)我尝试在Visual Studio中进入类视图,右键单击该方法,然后选择"查找所有引用"但它声称当我知道至少有一个我添加时,没有参考.
我有一个C++背景,不得不开发一个用C#编写的更大的应用程序并使用.NET框架.到目前为止,我一直在网上阅读很多教程,但最好还是寻找书籍,除非有一些非常好的长篇教程.我正在从事的项目涉及线程,套接字和GUI设计.这些天最好的书有哪些?我正在使用.NET 3.5作为我的应用程序.
我正在创建一个C#WinForms MDI应用程序.我有一个主要表单,其中包含4个其他表单.我希望能够在子窗体之外移动子窗体(它们的FormBorderStyle值设置为相当大的工具栏,以便单独的窗口不会出现在每个子窗口的任务栏上).我可以通过使用以下代码为主窗体完成此任务:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Prototype
{
public partial class MdiParent : Form
{
private FastEyeControl m_ControlForm;
private FastEyeLogWindow m_LogForm;
private FastEyeConfiguration m_ConfigurationForm;
private ROCOrderWindow m_OrderLogForm;
public MdiParent()
{
InitializeComponent();
m_ControlForm = new FastEyeControl();
m_LogForm = new FastEyeLogWindow();
m_ConfigurationForm = new FastEyeConfiguration();
m_OrderLogForm = new ROCOrderWindow();
}
private void MdiParent_Load(object sender, EventArgs e)
{
m_ControlForm.Show(this);
m_LogForm.Show(this);
m_ConfigurationForm.Show(this);
m_OrderLogForm.Show(this);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我最小化父表单时,所有子表单也会被最小化(如预期的那样).无论如何,当父窗口最小化时,是否要阻止父窗口之外的任何子窗体最小化?基本上,我希望用户能够根据需要调整大小并在父表单之外移动单个子表单(例如在Visual Studio.NET中取消工具栏并将其放在另一个监视器中).谢谢你的帮助!
更新:
我正在开发一个性能非常关键的程序.我有一个未排序的结构矢量.我需要在这个向量中执行许多搜索操作.所以我决定将矢量数据缓存到这样的地图中:
std::map<long, int> myMap;
for (int i = 0; i < myVector.size(); ++i)
{
const Type& theType = myVector[i];
myMap[theType.key] = i;
}
Run Code Online (Sandbox Code Playgroud)
当我搜索地图时,程序其余部分的结果要快得多.然而,剩下的瓶颈是地图本身的创建(平均花费大约0.8毫秒来插入约1,500个元素).我需要想办法减少这个时间.我只是插入一个long作为键和一个int作为值.我不明白为什么这么久.
我的另一个想法是创建一个向量的副本(不能触及原始的一个),并以某种方式执行比std :: sort更快的排序(它需要太长时间才能对它进行排序).
编辑:
对不起大家.我的意思是说我正在创建一个std :: map,其中键是long,值是int.long值是struct的键值,int是向量中相应元素的索引.
此外,我做了一些调试,并意识到矢量根本没有排序.这完全是随机的.所以做一些像stable_sort这样的东西是行不通的.
另一个更新:
谢谢大家的回复.我最终创建了一个对的向量(std :: vector of std :: pair(long,int)).然后我按长值对矢量进行排序.我创建了一个自定义比较器,仅查看该对的第一部分.然后我使用lower_bound来搜索该对.这就是我做到这一切的方式:
typedef std::pair<long,int> Key2VectorIndexPairT;
typedef std::vector<Key2VectorIndexPairT> Key2VectorIndexPairVectorT;
bool Key2VectorIndexPairComparator(const Key2VectorIndexPairT& pair1, const Key2VectorIndexPairT& pair2)
{
return pair1.first < pair2.first;
}
...
Key2VectorIndexPairVectorT sortedVector;
sortedVector.reserve(originalVector.capacity());
// Assume "original" vector contains unsorted elements.
for (int i = 0; i < originalVector.size(); ++i) …Run Code Online (Sandbox Code Playgroud)