Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;)将一维数组放入二维数组时出错_C++_Arrays_Clion - Fatal编程技术网

C++ c++;)将一维数组放入二维数组时出错

C++ c++;)将一维数组放入二维数组时出错,c++,arrays,clion,C++,Arrays,Clion,有什么问题 #include <iostream> using namespace std; int main() { int M; //height int N; //length cin >> M; cin >> N; int list[M][N], smaller[N]; string smaller_str; for (int i = 0;i < M; ++i){ getli

有什么问题

#include <iostream>
using namespace std;
int main() {
    int M; //height
    int N; //length
    cin >> M;
    cin >> N;
    int list[M][N], smaller[N];
    string smaller_str;
    for (int i = 0;i < M; ++i){
        getline(cin, smaller_str);
        for (int j = 0; j < N; i = i++) {
            cin >> smaller_str[j];
        }
        list[i] = smaller;
    }
}
#包括
使用名称空间std;
int main(){
int M;//高度
int N;//长度
cin>>M;
cin>>N;
整数列表[M][N],更小[N];
字符串较小的_str;
对于(int i=0;i>较小的_str[j];
}
列表[i]=较小;
}
}
我想把一维数组“更小”放到二维数组列表中 但是,我确实在“列表[i]=较小”部分中遇到错误
我需要帮助伙计们

你不能将另一个数组分配给一个数组,你能做的就是复制/移动它的内容。为此,请使用
std::copy

。。。
整数列表[M][N],更小[N];
字符串较小的_str;
对于(int i=0;i>较小的_str[j];
}
标准::复制(更小、更小+N、重新解释和列表[i]);
}

注意:如果您想移动内容而不是复制,请将
std::copy
std::move
交换,除非您想检查错误,否则在这种情况下不需要使用
getline
。只需通过
>
操作符读取每个元素

还要注意,可变长度数组,如
intlist[M][N]不是标准C++。你应该用它来代替那个

另一点是内部循环中的
i=i++
是错误的。它应该是
++j

#include <iostream>
#include <vector>
using namespace std;
int main() {
    int M; //height
    int N; //length
    cin >> M;
    cin >> N;
    //int list[M][N];
    std::vector<std::vector<int> > list(M, std::vector<int>(N));
    for (int i = 0;i < M; ++i){
        for (int j = 0; j < N; ++j) {
            cin >> list[i][j];
        }
    }
}
#包括
#包括
使用名称空间std;
int main(){
int M;//高度
int N;//长度
cin>>M;
cin>>N;
//整数列表[M][N];
std::vector list(M,std::vector(N));
对于(int i=0;i>列表[i][j];
}
}
}

您会遇到什么错误?您无法将内容分配给数组(而不是数组的元素)。你想做什么?也要小心:int list[M][N],更小[N];//这是无效的C++,m和n必须是常量。您需要使用“new”来分配arrays@SvenNilsson使用更好。