小编And*_*rew的帖子

如何在Visual Studio中查找特定类的重载运算符的所有引用?

如果我有一个包含重载==运算符函数的类,如何找出整个代码中这个重载运算符的使用位置?(除了在重载的==方法中放置一个断点,并查看代码是否会命中它.)我尝试在Visual Studio中进入类视图,右键单击该方法,然后选择"查找所有引用"但它声称当我知道至少有一个我添加时,没有参考.

c++ visual-studio

11
推荐指数
1
解决办法
4924
查看次数

C#和.NET:学习两者的最佳方式是什么?

我有一个C++背景,不得不开发一个用C#编写的更大的应用程序并使用.NET框架.到目前为止,我一直在网上阅读很多教程,但最好还是寻找书籍,除非有一些非常好的长篇教程.我正在从事的项目涉及线程,套接字和GUI设计.这些天最好的书有哪些?我正在使用.NET 3.5作为我的应用程序.

.net c#

9
推荐指数
1
解决办法
7153
查看次数

C#WinForms:当父表单最小化时,如何防止子表单被最小化?

我正在创建一个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中取消工具栏并将其放在另一个监视器中).谢谢你的帮助!

c# mdi winforms

8
推荐指数
1
解决办法
3099
查看次数

C++ std :: map创建耗时太长了?

更新:

我正在开发一个性能非常关键的程序.我有一个未排序的结构矢量.我需要在这个向量中执行许多搜索操作.所以我决定将矢量数据缓存到这样的地图中:

        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)

c++ stl

3
推荐指数
1
解决办法
1685
查看次数

标签 统计

c# ×2

c++ ×2

.net ×1

mdi ×1

stl ×1

visual-studio ×1

winforms ×1