c++如何定义二维字符串数组?

我在类里面有private:string *a,在类的构造函数中确定了数组长度,然后写a=new string[m][n](m,n已知),但这时候n处报错显示表达式必须包含指向对象的指针类型,请问哪里有问题?
最新回答
吶誰咱吢疼

2024-12-01 22:23:22

用vector表示二维数组:
表示,m行,n列,所有的数为0.
vector<vector<int>> dp(m, vector<int>(n, 0));
普通的定义方式:
int dp[m][n];
泣绕忪迎笑

2024-12-01 00:14:02

#include<string>
#include<iostream>

int main()
{
using namespace std;

string str[3] = {"ert","asd", "cvb"};
for(int i = 0; i < 3; i ++)
{
cout<<str[i]<<endl;
}

}

运行这段程序就可以了,是在vs2008上测试过。注意两个地方
1.#include<string>
2.using namespace std;

千万不要include
string.h
啦,string.h是C里的
字符串
库,而string是C++库,两者没有关系。这要弄明白连个库有什么不同,在网上搜搜就有。
C++里的String是包含在std命名空间里的,所以要加上第二句。
仲夏柠叶香

2024-12-01 22:12:33

这样搞:
string **a;
a=new string*[m];
for(int i=0;i<m;i++)
a[i]=new string[n];