int main() {
int my array[3][3] =
10, 23, 42,
1, 654, 0,
40652, 22, 0
};
printf("%d\n", my_array[3][3]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我无法打印阵列..任何想法为什么?我是一名初学者,所以任何建议的话都会受到赞赏.
我问这个是因为我的程序有两个函数来乘法矩阵,它们只乘以4x4和4x1矩阵.标题是:
double** mult4x1(double **m1, double **m2);
double** mult4x4(double **m1, double **m2);
Run Code Online (Sandbox Code Playgroud)
它们执行m1*m2并将其返回**两倍,下面是4x4乘法的片段.
double** mult4x4(double **m1, double **m2){
double** result = (double**) malloc(sizeof(double)*4);
for (int i = 0; i < 4; i++) {
result[i] = (double*) malloc(sizeof(double)*4);
}
...multiply...
return result;
}
Run Code Online (Sandbox Code Playgroud)
mult4x1和mult4x4之间的区别仅在于它们内部使用的索引.
我有这3个矩阵:
double m1[4][4] = {
{2, 3, 5, 6},
{9, 8, 1, 7},
{5, 4, 3, 1},
{7, 6, 1, 2}
};
double m2[4][4] = {
{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0}, …Run Code Online (Sandbox Code Playgroud) 我最近出现在面试中,面试官问我一个关于Arrays和的问题ArrayList.
他问我,如果一个数组的数组可以是多维的,那么,为什么是ArrayList的ArrayList"不是多维?
例如:
// Multidimensional
int[][] array = new int[m][n];
// Not multidimensional
ArrayList<ArrayList<Integer>> seq = new ArrayList<ArrayList<Integer>>();
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我理解这个吗?
我想动态创建一个二维数组.
我知道列数.但行数正在动态更改.我尝试了数组列表,但它仅将值存储在单维中.我能做什么?
想象一下,我有一个阵列
A = Array(1, 2, 3, 4, 5, 6, 7, 8, 9);
Run Code Online (Sandbox Code Playgroud)
我希望它转换成二维数组(N x M矩阵),例如:
A = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9));
Run Code Online (Sandbox Code Playgroud)
注意,矩阵的行和列是可变的.
我试图弄清楚如何从多维数组中获取单个维度(为了论证,让我们说它是2D),我有一个多维数组:
double[,] d = new double[,] { { 1, 2, 3, 4, 5 }, { 5, 4, 3, 2, 1 } };
Run Code Online (Sandbox Code Playgroud)
如果它是一个锯齿状的数组,我会简单地调用d[0],这会给我一个数组{1, 2, 3, 4, 5},是否有一种方法可以实现与2D数组相同?
请考虑以下代码:
int a[25][80];
a[0][1234] = 56;
int* p = &a[0][0];
p[1234] = 56;
Run Code Online (Sandbox Code Playgroud)
第二行是否调用未定义的行为?第四行怎么样?
c++ arrays pointers multidimensional-array undefined-behavior
为什么我的参数不能
void example(int Array[][]){ /*statements*/}
Run Code Online (Sandbox Code Playgroud)
为什么我需要指定数组的列大小?比如说3
void example(int Array[][3]){/*statements*/}
Run Code Online (Sandbox Code Playgroud)
我的教授说它是强制性的,但我在学校开始之前编码,我记得当我把它作为我的参数时没有语法或语义错误?还是我错过了什么?
c arrays parameters parameter-passing multidimensional-array
我在blitz ++,armadillo,boost :: MultiArray之间用以下代码进行了比较(借用旧帖子)
#include <iostream>
using namespace std;
#include <windows.h>
#define _SCL_SECURE_NO_WARNINGS
#define BOOST_DISABLE_ASSERTS
#include <boost/multi_array.hpp>
#include <blitz/array.h>
#include <armadillo>
int main(int argc, char* argv[])
{
const int X_SIZE = 1000;
const int Y_SIZE = 1000;
const int ITERATIONS = 100;
unsigned int startTime = 0;
unsigned int endTime = 0;
// Create the boost array
//------------------Measure boost Loop------------------------------------------
{
typedef boost::multi_array<double, 2> ImageArrayType;
ImageArrayType boostMatrix(boost::extents[X_SIZE][Y_SIZE]);
startTime = ::GetTickCount();
for (int i = 0; i < ITERATIONS; …Run Code Online (Sandbox Code Playgroud) c++ boost-multi-array multidimensional-array blitz++ armadillo
我有对象
var person1 = Person()
person1.name = "Joe"
person1.lastName = "Doe"
person1.age = 21
var person2 = Person()
person2.name = "Julia"
person2.lastName = "Ivanova"
person2.age = 22
var person3 = Person()
person3.name = "Irina"
person3.lastName = "Petrova"
person3.age = 25
var person9 = Person()
person9.name = "Vova"
person9.lastName = "Vovin"
person9.age = 32
var person10 = Person()
person10.name = "Masha"
person10.lastName = "Golovanova"
person10.age = 20
var person11 = Person()
person11.name = "Petra"
person11.lastName = "Andreeva"
person11.age = 27
Run Code Online (Sandbox Code Playgroud)
和多阵列 …