小编Jar*_*d42的帖子

在 C++ 中,为什么我不能声明这样的数组:int array[vector.size()]?

我想在C++ 20中将浮点向量转换为浮点数组。我在网上搜索并找到了这个解决方案:

#include <iostream>
#include <algorithm>
#include <vector>
 
int main()
{
    std::vector<int> input({ 1, 2, 3, 4, 5 });
 
    int arr[input.size()];
    std::copy(input.begin(), input.end(), arr);
 
    for (int i: arr) {
        std::cout << i << ' ';
    }
 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试实现它时,编译器给出一个错误,指出数组声明中括号内的内容必须是常量表达式。

从什么时候开始出现这种情况了?我发誓我以前在 C++ 中以类似的方式声明过数组并且它有效。如果您在网上查看,您会发现每个人也这样做,我发布的示例似乎是我的问题的标准解决方案。那么为什么它会给一个错误呢?

c++ arrays vector variable-length-array

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

矢量排序仅基于第一

嘿所有我都有一对矢量.在对矢量进行排序之后(即sort(v.begin(),v.end())......它在第一个元素的基础上对元素进行排序,但是我有一个问题......因为我需要保持第二个元素的顺序,第一个元素是相同的顺序. .例如看下面的代码..

std::vector<std::pair<int, int> > v(2);
v[0].first = 1; v[1].first = 1;
v[0].second = 2; v[1].second = 0;
sort(v.begin(),v.end());
for (int i = 0; i < 2; i++)
{
    std::cout << v[i].first << " " << v[i].second << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

作为上述代码的输出是

1 0
1 2
Run Code Online (Sandbox Code Playgroud)

而我希望输出如下

1 2
1 0
Run Code Online (Sandbox Code Playgroud)

请帮忙 !!

c++ sorting vector

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

整数输入范围为10 ^ 1000

是否可以采用大于C/C++提供的范围输入?是否可以接受大于无符号长整数的输入范围,甚至更大的范围为10 ^ 1000?如果可以用C/C++,请回答如何完成,谢谢.

c c++ biginteger

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

C++:如何生成Pascal三角形的"第n"行?

这是我的代码:

#include <iostream>
using namespace std;

int main()
{
    int n,k,i,x;
    cout << "Enter a row number for Pascal's Triangle: ";
    cin >> n; 
    for(i=0;i<=n;i++)
    {
        x=1;
        for(k=0;k<=i;k++)
        {
            cout << x << '\t';
            x = x * (i - k) / (k + 1);
        }
    cout << endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何更改它以便它只显示第n行而不是整个三角形?TIA.

c++ algorithm math binomial-coefficients

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

用C++指向向量的指针

我正在努力与矢量.这是我的两个例子.

#include <iostream>
#include <vector>
int main ()
{
    std::vector<int> myvector (5); 
    int* p = myvector.data(); // 0 index address
    *p = 10; // index 0 = 10;
    ++p; // index 0 to 1
    *p = 20; // index 1= 20
    p[2] = 100; // index 2 = 100
    ++p; // as p was in index 1. then ++ goes to index 2.
    *p=49; // index 2 = 49,, and 100 goes on index up
    std::cout << "myvector contains:";

    for …
Run Code Online (Sandbox Code Playgroud)

c++ pointers vector

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

git 忽略 C++ 项目中的构建文件夹的好方法吗?

我目前正在开发一个 C++ 项目,并使用 git 进行版本控制。

现在,我们使用 git repo 文件夹作为主项目文件夹,因此每次推送更改时,它都会包含相关的构建文件夹 ( build-ProjectName-Desktop-Debug sorta style folder)

我知道自己gitignore是一个东西,我能以某种方式告诉它忽略所有名称以 开头的文件夹吗build-

git build gitignore

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

编译器错误?在 std::tuple 中返回 std::vector 和 std::string。但我得到了奇怪的价值观

我想返回多个值并使用 声明该函数auto

但这效果并不好。无法正确返回值。它被覆盖了。

我尝试执行以下功能f1f3。这些函数应该返回元组中的向量和字符串。但只是f3效果很好。

#include <iostream>
#include <vector>
#include <string>
#include <tuple>

auto f1(){
    std::vector<double> v(10, 0);
    std::string s = "hello";
    return std::forward_as_tuple(v, s);
}

auto f2(){
    std::vector<double> v(10, 0);
    return std::forward_as_tuple(v, "hello");
}

std::tuple<std::vector<double>, std::string> f3(){
    std::vector<double> v(10, 0);
    std::string s = "hello";
    return std::forward_as_tuple(v, s);   
}
int main(void){
    //change the function
    //auto [vec, str] = f1();
    //auto [vec, str] = f2();
    auto [vec, str] = f2();

    for (auto e : …
Run Code Online (Sandbox Code Playgroud)

c++ stdvector auto stdtuple c++17

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

谁能简化这个按位表达式?

在 C++ 中开发 ECS 实现时,我渴望可以简化这个表达式,但老实说,我对按位运算没有足够的信心来弄清楚:

(x & y) == x
Run Code Online (Sandbox Code Playgroud)

如果您有任何关于简化按位表达式的提示,那就太好了,谢谢

编辑:格式化

c++ bit-manipulation bitwise-operators

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

C++打印奇怪的表现

我有一个C++问题:

#include<iostream>
#include<stdio.h>

using namespace std;

int main() {
    double k = 1.2366;
    cout << printf("%.3lf\n", k);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

1.237
6
Run Code Online (Sandbox Code Playgroud)

但我希望:

1.237
Run Code Online (Sandbox Code Playgroud)

为什么我在第二行获得额外的6?

c++ printf

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

C++,哪些元素指向字符串的数组

当我们举例说明时

const char* suit[3] = {"Head", "Dia", "Mod"};
Run Code Online (Sandbox Code Playgroud)

这意味着例如suit[0]存储地址"H".那么为什么当你std::cout << suit[0]打印"Head"

c++

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

C++中排列、组合和PowerSet的实现

我正在寻找使用 C+++ 的 Permutation、Combination 和 PowerSet 的实现

c++ combinations permutation powerset c++11

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