Arrays 一维std::string数组在技术上是矩阵吗?

Arrays 一维std::string数组在技术上是矩阵吗?,arrays,string,matrix,c++17,abstract,Arrays,String,Matrix,C++17,Abstract,我正在写一些代码,只是想完善一些程序的抽象概念。以下是我的位置和我的问题: 在C++中,我们有数据类型 STD::String < /代码>。这个数据类型基本上是一个高级指针,它有成员函数和变量 当您使用这样的字符串数组时:std::string test[5]字符串在技术上是否标记为矩阵?我之所以想知道这一点,是因为使用std::string可以通过以下方式指定常规字符串的各个字符: std::string hello=“hello”;std::cout矩阵是数字或其他数学对象的矩形数组,为其

我正在写一些代码,只是想完善一些程序的抽象概念。以下是我的位置和我的问题:

<>在C++中,我们有数据类型<代码> STD::String < /代码>。这个数据类型基本上是一个高级指针,它有成员函数和变量

当您使用这样的字符串数组时:
std::string test[5]
字符串在技术上是否标记为矩阵?我之所以想知道这一点,是因为使用
std::string
可以通过以下方式指定常规字符串的各个字符:


std::string hello=“hello”;std::cout矩阵是数字或其他数学对象的矩形数组,为其定义了加法和乘法等运算([)。对于一维std::string数组,它们始终为矩形的属性不成立。例如,您可以具有以下属性:

std::string strNames[] = { "David", "Bob", "Yana" }; 

对于上述数组,值
strNames[1][3]
没有很好的定义。对于矩阵,如果第一列有5个值,那么所有其他行也应该有5列,这可能与一维std::string数组的情况相同,也可能与一维std::string数组的情况不同。因此,不能说一维std::string数组也是矩阵。

定义了加法和乘法等运算的其他数学对象([)。对于一维std::string数组,它们始终为矩形的属性不成立。例如,您可以具有以下属性:

std::string strNames[] = { "David", "Bob", "Yana" }; 


对于上述数组,值
strNames[1][3]
没有很好的定义。对于矩阵,如果第一列有5个值,那么所有其他行也应该有5列,这可能与一维std::string数组的情况不同。因此,不能说一维std::string数组也是矩阵。

更好的类比是指针数组,例如,
char*hello2[2]={“你好”,“世界”}
。不,这不是一个真正的矩阵,除非是在最松散的意义上。在char指针上使用字符串有什么额外的好处吗;为了正常工作,矩阵必须是一个文本矩阵吗?使用std::string似乎可以使函数具有更少的参数。这与询问S<代码> STD::String 是一个字符数组(因此它的数组是字符的矩阵)。我认为大多数人不认为字符串是字符数组。在属性和操作上存在差异。这是否意味着值<代码> A' < /代码>和<代码> A?
有两种不同的ASCII表示法?通常在您说“矩阵”时它意味着一个特定的东西。它意味着你有一个数值的矩形数组。字符串数组不能称为矩阵。你可以称它为不规则数组,但更典型的是,你可以称它为字符串数组。当你命名事物时,你通常不会穿透抽象层。但这不是一个硬性的规则,它是这只是一个惯例,没有一套简单的命名规则。所以就目前而言,要知道,如果你把字符串数组称为矩阵,它会混淆和误导人们。更好的类比是指针数组,例如,
char*hello2[2]={“hello”,“world”}
。不,这不是一个真正的矩阵,除非是在最松散的意义上。在char指针上使用字符串有什么额外的好处吗;为了正常工作,矩阵必须是一个文本矩阵吗?使用std::string似乎可以使函数具有更少的参数。这与询问S<代码> STD::String 是一个字符数组(因此它的数组是字符的矩阵)。我认为大多数人不认为字符串是字符数组。在属性和操作上存在差异。这是否意味着值<代码> A' < /代码>和<代码> A?有两种不同的ASCII表示法?通常在您说“矩阵”时它意味着一个特定的东西。它意味着你有一个数值的矩形数组。字符串数组不能称为矩阵。你可以称它为不规则数组,但更典型的是,你可以称它为字符串数组。当你命名事物时,你通常不会穿透抽象层。但这不是一个硬性的规则,它是这只是一种惯例,没有一套简单的命名规则。因此,就目前而言,要知道,如果你将字符串数组称为矩阵,它会混淆和误导人们。正方形是矩形,但矩形不是正方形。在编程中的矩阵上下文中,字符数组[3][3]是正方形,而std::string数组[3]={“aaa”、“bbb”、“ccc”}是矩形!@AJaB这不是一个符合标准的矩阵。对于std::string通常被称为矩阵,所有这些矩阵在任何时候都应该符合标准,我们知道事实并非如此。你也不能声明一维std::string矩阵,因为这么多矩阵中有一个符合标准。你难道不能声明一个矩阵吗通过简单地使用普通的std::string来实现信号维?字符串基本上是一个指针;它通常指向一个数组。我觉得可以安全地说,
std::string str
,在正常声明时,是指向数组的指针。而
std::string str[]
是指向矩阵的指针。@user6090272该问题专门询问“一维std::字符串数组”我知道std::string在内部是如何工作的,但正如OP询问的字符串数组一样,这就是我使用数组的原因。我从OP在问题中发布的内容中获取了以下代码:std::string hello2[2]