小编Ash*_*h M的帖子

*b= *b+1 和 *b++ 之间的区别

我正在尝试更改主函数中 a 和 b 的实际值。但是当我使用 *b++ 来增加 b 的值时。它不工作。

#include<iostream>

using namespace std;


int F(int *b,int *c ){
    *b++;
    *c++;

}
int main(){
    int a=1 , b=2;
    cout<<a<<" "<< b<<" ";
    F(&a, &b);

    cout<<a<<" "<< b;
}
Run Code Online (Sandbox Code Playgroud)

但在第二种情况下,代码工作正常。

#include<iostream>

using namespace std;


int F(int *b,int *c ){
    *b = *b+1;
    *c = *c+1;

}
int main(){
    int a=1 , b=2;
    cout<<a<<" "<< b<<" ";
    F(&a, &b);

    cout<<a<<" "<< b;
}
Run Code Online (Sandbox Code Playgroud)

*b++ 和 *b=*b+1 不一样吗?

c++ pointers increment

3
推荐指数
2
解决办法
117
查看次数

如何通过其第0个位置参考解析此向量

我试图从其第一个元素的引用中解析此简单数组。

这是我的代码:

#include <iostream>
#include <vector>
#include <algorithm>     

int main()
{
    vector<int> vec3 { 1,2,3,4,5};
    for( vector<int>::iterator ptr = &vec3[0]; ptr != vec3.end(); ++ptr )
    {
        cout << *ptr << " ";
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

[Error] conversion from '__gnu_cxx::__alloc_traits<std::allocator<int> >::value_type* {aka int*}' to non-scalar type 'std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}' requested
Run Code Online (Sandbox Code Playgroud)

有什么问题?

c++ iterator stl vector c++11

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

输出是 NaN ,如何?

我正在尝试对泰勒级数进行编码,但是在 n(=100) 的值很大的情况下,我将得到“nan”作为输出。我哪里做错了?

#include<iostream>
#include<cmath>
using namespace std;

 int main(){

    int n;
    double x;

    cin >> n;
    cin >> x;

    long double temp_val = 1;
    int sign = 1;
    int power = 1;
    long long int factorial = 1;


    for(int i = 1 ; i < n ; i++){

        sign = sign* -1 ;
        power =  2*i;
        factorial  = factorial*(2*i)*(2*i-1);

        temp_val += sign*pow(x,power)/factorial;
    }
    cout<<temp_val;

}
Run Code Online (Sandbox Code Playgroud)

c++ nan taylor-series

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

标签 统计

c++ ×3

c++11 ×1

increment ×1

iterator ×1

nan ×1

pointers ×1

stl ×1

taylor-series ×1

vector ×1