#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类型。 ....我需要重载 - 运算符
答案 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))
即可。
答案 3 :(得分:0)