小编Loc*_*ead的帖子

关于正确设计程序C++的困惑

我做了一个小程序,生成素数,让用户检查一个数字,看看它是不是素数.问题是,我不确定如何正确设计它.这是该计划:

#include <iostream>
#include <vector>

typedef unsigned long long bigint;

std::vector<bool> sieve(size_t size)
{   
    std::vector<bool> primelist(size);

    primelist[0] = false;
    primelist[1] = false;

    for (bigint i = 2; i < size; ++i) { primelist[i] = true; }

    for (bigint i = 2; i * i < size; ++i)
    {
        if (primelist[i])
        {
            for (bigint j = i; j * i < size; ++j)
                primelist[i*j] = false;
        }
    }

    return primelist;
}

int main()
{
    bigint range;
    bigint number;
    std::vector<bool> primes;

    std::cout …
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
1
解决办法
428
查看次数

为什么C++同时具有类和结构?

可能重复:
C++中struct和class之间有什么区别

如果结构和类之间的唯一区别是默认访问说明符(在C++中),那么为什么C++也有类?

c++ struct class

4
推荐指数
1
解决办法
2558
查看次数

修改终端中的文本

是否可以在不清除屏幕的情况下修改我打印到终端的文本?

例如,如果我以百分比显示某些内容的进度,我是否可以修改该百分比而无需清除屏幕并再次打印?我正在寻找一种跨平台的方式,如果有的话.

谈论C++.

谢谢

c++ linux terminal console-application

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

C++中的继承和多个文件

我有多个从一个基类继承的类,每个类都在一个单独的头中.我希望用户能够只包含基类头,但是这需要我在基本头中包含其他派生类,这会导致某种循环依赖,并且我已经读到某个循环依赖是一件坏事.

我的类是套接字类,派生类是socket_udp,socket_tcp,socket_raw等.

如何解决循环依赖?也许类设计很糟糕,我不需要为不同的套接字类型使用不同的类?我在这里有点困惑.

谢谢!

c++ inheritance class header-files

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

将整数作为参数并返回一个数组

我想创建一个函数,它接受一个整数作为它的参数,并在C++中返回一个数组.这是我想到的伪代码:

function returnarray(integer i)
{
    integer intarr[i];

    for (integer j = 0; j < i; j++) { intarr[j] = j; }

    return intarr;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了将returnarray声明为函数*返回指针的常用方法,但是我不能将整数作为参数.我也不能将j分配给intarr [j].我真的想避免指向一个int,因此我可以使用参数.

有没有办法做到这一点,能够将j分配给intarr [j]而不为它指针?

编辑:

忘了写我想避免矢量.我只有在必须的时候使用它们!(我的理由是我的).

感谢:D

c++ arrays return

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

正确使用枚举C++

我一直在努力学习如何在C++中正确使用枚举,我几乎无法理解如何处理它们.我做了一个简单的程序,使用枚举和按位操作来改变交通信号灯:

    #include <iostream>

enum lights
{
    green = 1,
    yellow = 2,
    red = 4,
    control = 7
};

std::string change_light (std::string choice)
{
    lights light;
    int changed;

    if (choice == "yellow")
        light = yellow;

    else if (choice == "red")
        light = red;

    else if (choice == "green")
        light = green;

    changed = control & light;

    if (changed == red)
        return "red";

    else if (changed == yellow)
        return "yellow";

    else if (changed == green)
        return "green";
}

int main()
{ …
Run Code Online (Sandbox Code Playgroud)

c++ enums bit-manipulation

0
推荐指数
1
解决办法
2670
查看次数

CSS 3渐变不适用于chrome/firefox

<html>
<head>
<style type="text/css">
    *{padding:0;margin:0;}
    body{
        background: -webkit-gradient(
            linear,
            right bottom,
            left top,
            color-stop(0.25, #F5A432),
            color-stop(0.63, #F0F050)
        );
        background: -moz-linear-gradient(
            right bottom,
            #F5A432 25%,
            #F0F050 63%
        );
    }

    .box{margin-left: 33px; width:100px; height: 100px; background-color:rgb(69,69,69); border: 1px solid rgb(56,56,56);border-radius: 25px; float:left}
    #container{padding-left: 37%; padding-right: 30%; width: 1000px; background-color: rgb(64,64,64); position:fixed}
</style>
</head>
<body>
    <div id="container">
        <div class="box">
        </div>
        <div class="box">
        </div>
        <div class="box">
        </div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

上面的代码中没有显示渐变!只是一个纯白色的背景.为什么?

html css firefox google-chrome css3

0
推荐指数
1
解决办法
2958
查看次数