小编Sau*_*ahu的帖子

使用面向对象的分析和设计对电梯进行建模

在涉及面向对象的设计和分析时,有一组似乎在面试和课程中常用的问题.这是其中之一; 不幸的是,我在大学的OOP教授实际上从未给出答案,所以我一直在想.

问题如下:设计一组用于模拟电梯组的基本对象/方法.什么是对象及其属性/方法?

为了论证,让我们假设我们的建筑有二十层; 底层是大厅,二楼连接到停车场(因此,人们将进入/离开底层或二楼的建筑物).有一个电梯银行为所有楼层提供服务; 电梯组中有三个电梯井,每个井有一个电梯.

在面向对象模型中对此进行建模的正确方法是什么?

language-agnostic oop design-patterns

134
推荐指数
5
解决办法
13万
查看次数

Valgrind Massif工具输出图形界面?

我正在使用Valgrind 3.3.1和Massif工具来分析C++应用程序的堆,我想知道是否有一个图形工具来检查文本输出文件.

谢谢你的任何建议.

valgrind massif

70
推荐指数
3
解决办法
3万
查看次数

"使用命名空间std"有什么用?

有什么用using namespace std

我想看看Layman的解释.

c++ namespaces using std

59
推荐指数
2
解决办法
25万
查看次数

weak_ptr如何工作?

我理解如何使用weak_ptrshared_ptr.我shared_ptr通过计算其对象中的引用数来理解它是如何工作的.weak_ptr工作怎么样?我尝试阅读boost源代码,并且我不熟悉boost以了解它使用的所有内容.

谢谢.

c++ boost weak-references tr1 weak-ptr

57
推荐指数
1
解决办法
2万
查看次数

不使用'/'的分部

任何人都可以告诉我一种有效的方法来执行除法操作而不使用'/'.我可以log(n)使用类似于二进制搜索的方法逐步计算整数值.

115/3 
57 * 3 > 115
28 * 3 < 115
47 * 3 > 115
.
.
.
38 * 3 is quotient value .....
Run Code Online (Sandbox Code Playgroud)

但还有其他更有效的方法吗?

algorithm bit-manipulation division

47
推荐指数
4
解决办法
7万
查看次数

我可以使用'=='来比较两个向量.我试过了,似乎工作正常.但我不知道它是否适用于更复杂的情况

第一个例子:

int main(){
    using namespace std;   
    vector<int> v1{10, 20, 30, 40, 50};
    vector<int> v2{10, 20, 30, 40, 50};

    if(v1==v2)
        cout<<"equal";
    else
        cout<<"unequal";
}   // it returns equal 
Run Code Online (Sandbox Code Playgroud)

第二个例子:

int main(){
    using namespace std;   
    vector<int> v1{10, 20, 30, 40, 50};
    vector<int> v2{10, 20, 100000, 40, 50};

    if(v1==v2)
        cout<<"equal";
    else
        cout<<"unequal";
}   // it returns notequal 
Run Code Online (Sandbox Code Playgroud)

c++ equality vector operator-overloading

44
推荐指数
3
解决办法
5万
查看次数

std :: remove_if - lambda,不从集合中删除任何东西

好吧,我希望我在这里犯了一个愚蠢的错误.我有一个DisplayDevice3d列表,每个DisplayDevice3d都包含一个DisplayMode3d列表.我想删除DisplayDevice3d列表中没有任何DisplayMode3d的所有项目.我正在尝试使用Lambda来做它,即:

    // If the device doesn't have any modes, remove it.

  std::remove_if(MyDisplayDevices.begin(), MyDisplayDevices.end(),
   [](DisplayDevice3d& device) 
   { 
    return device.Modes.size() == 0; 
   }
  ); 
Run Code Online (Sandbox Code Playgroud)

即使出6名DisplayMode3d在MyDisplayDevices,只有1个有什么DisplayMode3d的其模式集合中,没有被从列表中删除.

我在这里犯了什么错误?

编辑:

好吧,我的错误是我应该使用MyDisplayDevices.remove_if而不是std :: remove_if,但是下面的答案对于使用std :: remove_if:p是正确的.

MyDisplayDevices.remove_if( [](DisplayDevice3d const & device) 
                            { 
                                return device.Modes.size() == 0; 
                            });
Run Code Online (Sandbox Code Playgroud)

c++ lambda erase-remove-idiom remove-if c++11

43
推荐指数
3
解决办法
3万
查看次数

找到毕达哥拉斯三元组,其中a + b + c = 1000

毕达哥拉斯三元组是一组三个自然数,a <b <c,其中,2 + b 2 = c 2

例如,3 2 + 4 2 = 9 + 16 = 25 = 5 2.

恰好存在一个毕达哥拉斯三元组,其中a + b + c = 1000.找到产品abc.

资料来源:http://projecteuler.net/index.php?section = problem&id = 9

我试过但不知道我的代码出错了.这是我在C中的代码:

#include <math.h>
#include <stdio.h>
#include <conio.h>


void main()
{
    int a=0, b=0, c=0;
    int i;
    for (a = 0; a<=1000; a++)
    {
        for (b = 0; b<=1000; b++)
        {
            for (c = 0; c<=1000; c++)
            {
                if ((a^(2) …
Run Code Online (Sandbox Code Playgroud)

c algorithm operators pythagorean

27
推荐指数
8
解决办法
5万
查看次数

SVN检查linux

我的uname -a读到:

root@edu [~]# uname -a
Linux edu.educationlinked.com 2.6.18-028stab068.3 #1 SMP Tue Feb 16 20:21:42 MSK 2010 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我不确定这是哪个Linux操作系统?

我已经在免费存储库中托管了一个存储库,我在Windows上使用Tortoise SVN作为客户端.我需要在上面提到的Linux机器上进行检查等.

我已阅读并阅读并对使用的内容感到困惑?有人可以帮帮我吗.

linux svn

24
推荐指数
2
解决办法
11万
查看次数

为什么istream对象可以用作bool表达式?

有谁知道为什么istream对象可以用作bool表达式?例如:

ifstream input("tmp");
int iValue;
while (input >> iValue)
    //do something;
Run Code Online (Sandbox Code Playgroud)

这里input >> iValue返回对ifstream对象的引用.我想知道为什么这个对象可以用作bool表达式.
我查看ifstream类,发现这可能是由于以下成员函数:

operator void * ( ) const;
Run Code Online (Sandbox Code Playgroud)

有关此功能的详细信息,请参见此处
如果是的话,有人可以向我解释这个功能吗?该函数的原型与通常的运算符重载声明不同.这个函数的返回类型是什么?
如果不是,那么ifstream对象可以用作bool表达式的原因是什么?
期待您的帮助!

c++ operator-overloading istream

23
推荐指数
2
解决办法
4577
查看次数