【发布时间】:2018-03-01 21:08:35
【问题描述】:
我开始在 c++ 上编写代码,我有良好的 java 背景,我对 C++ 的语法有一些问题。 我坚持一件事,我创建了一个方法“SortCloums”,但我错过了一些东西。在 for 循环中,它给我一个按摩:
expression must have pointer-to-object type
这是我的短代码,是的,我还在学习指针。需要你们一些指导。
#include <iostream>
using namespace std;
const int size = 4;
void SortCloums(int arr[size][size], int sizeOfArray);
int main(){
int arr[size][size] = { { 0, 4, 6, 0 },
{5, 6 , 8, 12},
{50, 8, 12, 24},
{900, 10, 30, 50} };
SortCloums(arr, size);
return 0;
}
void SortCloums(int arr ,int sizeOfArray) {
// now we check if the array is column sorted or not.
bool flag = true;
for (int i = 0; i < sizeOfArray && flag != false; i++){
for (int j = 0; j < sizeOfArray && flag != false; j++){
if (arr[j][i] > arr[j+1][i]){
flag = false;
std::cout << "The array of column unsorted" << endl;
std::cin.get();
}
}
}
if (flag == true){
std::cout << "The array is column sorted" << endl;
std::cin.get();
}
}
【问题讨论】:
-
如果你想学习正确的 C++,就把你在 Java 中学到的一切都忘掉。请查看此C++ books 列表。
-
请阅读:minimal reproducible example。您可以edit您的问题以提高其质量和获得良好答案的机会。
-
将
int arr[] []更改为std::vector< std::vector< int > > -
请注意,c++ 中的数组不是 Java 中的典型对象。值得注意的是,它们没有成员方法,也没有值语义。它们是非常低级的机制,有几个陷阱。相反,对具有编译时常量大小的数组使用 std::array,在其他情况下使用 std::vector。这只是事先熟悉 Java(或其他语言)如何导致对 c++ 的错误假设的一个示例。
-
有什么问题?
标签: c++