我想用vector建立一个输入字符串的二维
时间: 2024-09-27 08:12:15 浏览: 22
如果你想用`vector`在C++中建立一个用于存储输入字符串的二维结构,你可以这样做:
```cpp
#include <vector>
#include <string>
std::vector<std::vector<std::string>> inputStrings;
void addStringToMatrix(const std::string& str, int row, int col = -1) {
if (col == -1) {
// 如果列数未指定,则自动分配新的一行
inputStrings.push_back({});
col = inputStrings.size() - 1;
}
inputStrings[row].push_back(str);
}
int main() {
// 示例:接收用户输入并添加到矩阵
std::string line;
while (std::getline(std::cin, line)) {
addStringToMatrix(line);
}
return 0;
}
```
在这个例子中,`addStringToMatrix`函数接受一个字符串以及行和列索引,如果列索引没提供,默认会在最后一行添加新字符串。你可以根据需要修改这个函数。
相关问题
vector二维字符串数组
在C++中,`vector`是一个动态数组容器,它可以存储任意类型的对象,包括二维字符串数组。二维字符串数组实际上是一个数组的数组,你可以用`std::vector<std::vector<std::string>>`来表示。这种数据结构可以用来存储行数可变的表格数据。
例如:
```cpp
std::vector<std::vector<std::string>> myVector;
```
在这个例子中,`myVector`是一个二维`std::vector`,它内部是包含`std::string`元素的数组,你可以通过索引来访问和操作其中的元素:
- `myVector.push_back({newString1, newString2, ...})` 可以向二维数组添加新的行
- `myVector.resize(rowCount, columnCount)` 可以改变数组的大小
- `myVector.clear()` 清空所有元素
关于`vector`的操作,它提供了诸如`at()`, `erase()`, `insert()`, `resize()`等方法来进行更复杂的管理。
C++创建一个二维字符串向量
可以使用 `vector<vector<string>>` 类型来创建一个二维字符串向量。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// 创建一个二维字符串向量
vector<vector<string>> strVec{
{"apple", "orange", "banana"}, // 第一行
{"cat", "dog", "bird"}, // 第二行
{"red", "green", "blue"} // 第三行
};
// 遍历输出二维字符串向量
for (int i = 0; i < strVec.size(); i++) {
for (int j = 0; j < strVec[i].size(); j++) {
cout << strVec[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
输出结果为:
```
apple orange banana
cat dog bird
red green blue
```