如何使用C ++中的向量创建char的二维矩阵?

时间:2016-07-21 20:12:49

标签: c++ string algorithm vector

         #include <cmath>
         #include <cstdio>
         #include <vector>
         #include <iostream>
         #include <algorithm>
         using namespace std;
        int main() {

               vector<vector<char> > v(100, std::vector<char>(100));
               v[0]="apple";
               cout<<v[0];
               sort(v[0].begin(),v[0].end());
               cout<<v[0];
                  }

它应该在排序前显示苹果,在排序后显示aelpp。但它没有编译....任何建议?? 也假设...... v [0] =&#34; ebacd&#34; ...... v [1] =&#34; fghij&#34; ....我想应用v [0] -v [1] ....使得结果向量是int类型。 ....我需要重载 - 运算符

4 个答案:

答案 0 :(得分:1)

vector和const char *是不同的类型,你不能使用&#34; =&#34;运营商。您想将char字符串复制到vector。替换字符串

v[0]="apple";

const char* apple = "apple";
std::copy(apple, apple + std::strlen(apple), std::back_inserter(v[0]));

答案 1 :(得分:0)

v [0]是一个向量,而不是一个字符串 你不能用作字符串,例如第二行(赋予c字符串)。

正确编写,不编译。

答案 2 :(得分:0)

要声明一个char数组,你可以简单地使用一个字符串向量。它基本上代表一个2D数组,因为字符串本质上是字符数组。 只需声明vector<string> v(100);
就是这样。它可以用作2D字符数组,您可以访问v[i][j]

对于您的代码,您无法使用vector初始化char const char*。 只需用上面的字符串声明替换vector<vector<char> > v(100, vector<char>(100))即可。

Code

答案 3 :(得分:0)

enter image description here

对于您要做的事情,您不需要2D矢量。

事实上像$ python yourfile.py这样的1d向量足以对字符进行排序。

您需要做的就是将字符apple的字符按字符存储到矢量字符中。

vector<char> v;

进行排序..

v.push_back('a');
v.push_back('p');
v.push_back('p');
v.push_back('l');
v.push_back('e');

然后显示..

sort(v.begin() , v.end());

完整代码列表:

for (i=0; i<v.size(); i++)    cout<< v[i];