我做了一个小程序,生成素数,让用户检查一个数字,看看它是不是素数.问题是,我不确定如何正确设计它.这是该计划:
#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++中struct和class之间有什么区别
如果结构和类之间的唯一区别是默认访问说明符(在C++中),那么为什么C++也有类?
是否可以在不清除屏幕的情况下修改我打印到终端的文本?
例如,如果我以百分比显示某些内容的进度,我是否可以修改该百分比而无需清除屏幕并再次打印?我正在寻找一种跨平台的方式,如果有的话.
谈论C++.
谢谢
我有多个从一个基类继承的类,每个类都在一个单独的头中.我希望用户能够只包含基类头,但是这需要我在基本头中包含其他派生类,这会导致某种循环依赖,并且我已经读到某个循环依赖是一件坏事.
我的类是套接字类,派生类是socket_udp,socket_tcp,socket_raw等.
如何解决循环依赖?也许类设计很糟糕,我不需要为不同的套接字类型使用不同的类?我在这里有点困惑.
谢谢!
我想创建一个函数,它接受一个整数作为它的参数,并在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++中正确使用枚举,我几乎无法理解如何处理它们.我做了一个简单的程序,使用枚举和按位操作来改变交通信号灯:
#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) <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)
上面的代码中没有显示渐变!只是一个纯白色的背景.为什么?