小编ste*_*fan的帖子

C++返回语句奇怪的行为?

我发现了一些关于return陈述的新事物(对我自己而言).与强制调试器结合forif强制调试器不从函数返回控制并继续执行下一个语句,而是堆叠在函数内部并重复for直到条件不为真.例如:

struct Position
{
    int position;
    int value;
};

vector<Position> find_all(vector<Position>& v, int value)
{
    vector<Position> res;
    for (auto p = v.begin(); p != v.end(); ++p)
        if (p->value == value)
            res.push_back(*p);

    return res;
}

int main()
{
    vector<Position> v { { 0, 0 }, { 1, 1 }, { 2, 0 }, { 3, 3 },
                         { 4, 4 }, { 5, 6 }, { 6, 0 }, { 7, 2 } …
Run Code Online (Sandbox Code Playgroud)

c++

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

这个C++代码有什么问题

如果下面的代码有问题,有人可以告诉我吗...在一个问题中,我被问到以下斐波纳契数函数是否有问题.

int fib(int n)
{
  if (n <= 1) return n;
  return fib (n-1) + fib(n-2);
}
Run Code Online (Sandbox Code Playgroud)

其中n是0 ... 100

所以我的回答是什么,因为我看不到任何明显的东西.语法似乎很好,逻辑上这是计算斐波那契数.我在做出这个假设时是否正确?

c++

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

头文件包括彼此

我有两个头文件.decimal.h和integer.h,每个都包含它们各自的类.我想写这样的东西.

//integer.h
#ifndef INTEGER_H
#define INTEGER_H
#include "decimal.h"
class Integer
{
     ...
     operator Decimal();
}
#endif

//decimal.h
#ifndef DECIMAL_H
#define DECIMAL_H
#include "integer.h"
class Decimal
{
     ...
     operator Integer();
}
#endif
Run Code Online (Sandbox Code Playgroud)

给我带来麻烦的是,因为它们包含了它,所以它在Visual Studio中表现得很奇怪并且产生奇怪的编译器错误.有没有办法解决?

c++

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

对象的性能影响

我是一名初学程序员,具有一些c和c ++编程经验.我被大学指派为物理模拟器,所以你可能会想到有很强调性能.

我的问题如下:

  1. 实例数据成员通过指针访问的汇编指令有多少转换为(例如vector-> x)?
  2. 是不是说另一种方法,你只需通过说char*(在变量x的相同内存位置)访问内存,或者它是否相同?
  3. 如果我使用一个对象访问该内存位置或者我只是访问它,那么对编译器性能有很大的影响吗?
  4. 关于这个问题的另一个问题是访问堆内存是否比堆栈内存访问更快?

c c++ performance

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

指针地址未初始化时指针的值

#include <iostream>

int main()
{
    int a;
    int *p = &a;
    std::cout << *p << "\n";
}
Run Code Online (Sandbox Code Playgroud)

在这个程序中,当我保持a未初始化并尝试获取指针的输出时,它给了我-2.但是当我a用值初始化时,打印*p给了我这个价值.-2当我没有a初始化时,它为什么会给出?

c++ pointers

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

用C ++求解联立方程

我目前正在尝试创建一个可以求解联立方程的程序。我有这个:

int main()
{   float a1,a2,b1,b2,c1,c2;
    float x,y;
    system("CLS");
    printf("We require simultaneous in the form of \n\n\ta1x+b1y=c1\n\n\ta2x+b2y=c2\n");
    printf("enter the values of a1,b1,c1 \n a2,b2,c2\n respectively:\n");
    scanf("%f%f%f%f%f%f",&a1,&b1,&c1,&a2,&b2,&c2);
    printf("The Simultaneous equations are \n %fx+%fy=%f",a1,b1,c1);
    printf("and\n%fx+%fy=%f",a2,b2,c2);
    printf("\n\nThe Solution is=\n");
    y=(((c1*a2)-(c2*a1))/((b1*a2)-(a1*b2)));
    x=((c1-(b1*y))/a1);
    printf(" x = %f",x);
    printf("\n y = %f",y);
    _getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

而且它的工作如我所料,但我不明白的算法yx,谁能给我一个代码或解释目前的代码,我在这里?

c++

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

在C中,100个浮点变量的数组和100个字符指针的数组占用了多少字节的内存?

bool:1字节
char:1字节
短:2字节
int:4字节
长:8字节
float:4字节
double:8字节
long double:16字节
unsigned int:8字节
unsigned char:1字节
long int:8字节
short int :2字节
签名char:1bytes

c

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

标签 统计

c++ ×6

c ×2

performance ×1

pointers ×1