我编码一个enigma机器并且在我的向量中使用元素时遇到问题,只将分段错误作为错误.我需要在单个字符的向量中使用每个转子中的一个函数,在迭代器移动时转换字符,一次向前遍历列表,一次向后转换.我已经注释掉其他转换以隔离问题.
Machine.cpp
#include "Machine.h"
using namespace std;
Machine::Machine(const vector<Rotor>& rots, const Plugboard & pb)
: rotors(rots), plugboard(pb) {}
// give c's alphabet index
int Machine::getPosition(char c) {
if (c >= 'A' && c <= 'Z') {
return c - 'A';
} else {
cout << "not an accepted character";
return -1;
}
}
// give letter at index i in alphabet
char Machine::atPosition(int i) {
assert(i >= 0 && i <= 25);
return "ABCDEFGHIJKLMNOPQRSTUVWXYZ" [i];
}
char Machine::encode(char c) { …Run Code Online (Sandbox Code Playgroud) 为什么我可以++在LHS和RHS中重载并使用运算符,而+只能在LHS模式下工作?
class B {
public:
string operator ++ () { return "hello"; }
string operator + () { return "hello2"; }
};
int main ()
{
B b;
string s = +b ;
s = b+ ; // compile error syntax error : ';'
s = b++;
s = ++b;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 如果函数Foo()将所有权转移std::unique_ptr到函数Bar()并且说Bar()抛出异常,则包含的对象std::unique_ptr将被销毁.
Foo()在这种情况下,如何处理可能希望保留所有权的案例.
class A
{
public:
std::unique_ptr<SomeData> getSomeData(...);
};
class B
{
public:
pushToQ(std::unique_ptr<SomeData>);
doSomething()
...
popFromQ();
...
};
Run Code Online (Sandbox Code Playgroud)
现在,如果B::pushToQ()抛出,QueueFullException我将丢失getSomeData()我可能不想要的数据.
我创建了一个函数,该函数应该能够计算2个整数(正负)之间的加法,乘法和平方根。但是,我的代码仅适用于正整数。
例如,如果我插入3和5,它将计算(3)+(4)+(5)= 12,但是如果我输入-3和-5,答案将为0。如果我输入5,也会发生相同的情况作为我的第一个整数,然后是3作为我的第二个整数,而不是第3个然后是5。我无法弄清楚我的代码出了什么问题。我非常感谢您的指导并为我的问题提供帮助!
int calculate(int num1, int num2, char op) {
int answer, x;
if (op == 'a') {
answer = 0;
for (x = num1; x <= num2; x++) {
answer += x;
}
}
if (op == 'm') {
answer = num1;
for (x = num1 + 1; x <= num2; x++) {
answer = answer * (x);
}
if (op == 's') {
answer = 0;
for (x = num1; x <= num2; x++) {
answer = …Run Code Online (Sandbox Code Playgroud) 每当我想到使用它时while loop,我都不明白为什么我不能只使用它if statement.我知道while循环运行'while'给定的语句是真的,但是如果条件瞬间在块内终止,那么我无法看到发生的任何事情,而'有些事情是真的.如果有人能给我一些如何/为什么我应该使用的例子while loop.非常感谢.
jQuery没有按照它应该的方式工作,完全忽略了逻辑.
如果我单击一个链接,它会显示给定的描述,并淡化其他菜单.
如果我再次单击相同的链接,它应该隐藏该描述,并淡化其他链接.
但它只是隐藏文本,并且不会淡化它们.
当从控制台单独运行代码时,当您单击段落旁边的空白时,它可以正常工作.
jQuery的:
$('a[class]').click(function(){
var clas = $(this).attr('class');
$('#'+clas.substring(0,2)).fadeTo('fast',1).removeClass('faded');
$('p:not(#'+clas.substring(0,2)+')').fadeTo('fast',0.3);
$('.ans:visible').toggle('slow');
$('#'+clas.substring(0,2)+'a'+':hidden').fadeIn('slow');
$('p:not(#'+clas.substring(0,2)+')').addClass('faded');
return false;
});
$('p:not(p.faded)').click(function(){
$('.ans:visible').toggle('slow');
$('p[class="faded"]').fadeTo('fast',1).removeClass('faded');
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<p id="q1">1. <a class="q1">Nem látom a kedvenc karakterem, hozzá tudod adni?</a>
<br>
<span id="q1a" style="display:none;" class="ans">
Persze. Írj egy e-mail-t a <a href="mailto:djdavid98+mlptoday@gmail.com?subject=MLP Today Karakterkérés" target="_blank">djdavid98@gmail.com</a> címre a karakter nevével.
<br>
<span style="color:red">OC-kat és fillyket NEM adok hozzá.</span>
</span>
</p>
<p id="q2">2. <a class="q2">Hogyan tudok karaktert választani?</a>
<br>
<span id="q2a" style="display:none;" class="ans">
Látogass el a …Run Code Online (Sandbox Code Playgroud) 我有一个类,Tile它有一个带有Color对象参数的构造函数:
class Tile
{
public:
static const int size = 32;
Tile();
Tile(Color &color);
void render(int x, int y);
Color getColor();
~Tile();
private:
Color _color;
};
Run Code Online (Sandbox Code Playgroud)
然后我有一个子类,TileGrass继承Tile:
class TileGrass : public Tile
{
public:
TileGrass();
~TileGrass();
};
Run Code Online (Sandbox Code Playgroud)
现在的问题是TileGrass需要Tile使用Color参数继承构造函数.但是,TileGrass对象已经知道它需要给超类提供什么颜色,所以我不想Color在创建新TileGrass对象时传入对象.在Java中,我可以这样做:
public class TileGrass extends Tile {
public TileGrass() {
super(color object);
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在C++中做这样的事情?
有什么区别:
std::shared_ptr<int> p1 = std::shared_ptr<int>(new int);
Run Code Online (Sandbox Code Playgroud)
和
std::shared_ptr<int> p2 = (std::shared_ptr<int>) new int;
Run Code Online (Sandbox Code Playgroud)
哪个更好?为什么?
给定一个带有
n整数的数组,您的任务是通过最多修改1个元素来检查它是否可以变小。我们定义一个数组,如果array[i] <= array[i + 1]对each 保持不变,则它是非递减的i(1 <= i < n)。
我的代码是下面的代码。我在运行时遇到运行时错误,但无法确定错误是什么。我是编程新手,所以如果发现错误,请以最简单的方式进行说明。谢谢。
class Solution {
public:
bool checkPossibility(vector<int> &nums) {
bool status = false;
int count = 0;
for (int i = 0; i <= nums.size() - 2; i++) {
if (nums[i] > nums[i + 1]) {
count++;
}
}
if (count > 1) {
status = false;
} else {
status = true;
}
return status;
}
};
Run Code Online (Sandbox Code Playgroud)
我收到运行时溢出错误。
构造函数可以在C++中是私有的吗?如果是,那我们怎么称呼呢?
class Puma
{
int a = 10;
Puma()
{
cout << a;
}
};
int main()
{
Puma pum;
return o;
}
Run Code Online (Sandbox Code Playgroud)
这个程序可以运行吗?如果没有那么我们如何调用Puma()构造函数,因为它是私有的?
c++ ×8
c++11 ×2
javascript ×2
vector ×2
arrays ×1
constructor ×1
html ×1
inheritance ×1
iterator ×1
jquery ×1
object ×1
shared-ptr ×1
unique-ptr ×1