c++ - 将 txt 文件中的行读入向量,然后将其传递给另一个向量以拆分行,使用逗号作为分隔符
问题描述
我无法理解 main() 之外的向量的概念。我正在尝试声明一个数组,然后将该数组传递给外部拆分向量,一旦所有行都被推回 main 中声明的向量。我的问题是了解如何将从 txt 文件中读取的行传递给要拆分的拆分向量,然后将第 4 个逗号之后的值返回给 main 方法中的原始向量。
vector<string> split(const string& s, const string& delim) {
const bool keep_empty = true;
vector<string> result;
if (delim.empty()) {
result.push_back(s);
return result;
}
string::const_iterator substart = s.begin(), subend;
while (true) {
subend = search(substart, s.end(), delim.begin(), delim.end());
string temp(substart, subend);
if (keep_empty || !temp.empty()) {
result.push_back(temp);
}
if (subend == s.end()) {
break;
}
substart = subend + delim.size();
}
return result;
}
void binary(vector<string> &airPort);
void Linear_Search(vector<string> &airPort);
int main()
{
vector<string> airPort;
string s;
int counts = 0;
string inp;
string total;
string cat = "cat";
string a, b, c, d, e;
char bs;
ifstream file("airports.dat");
if (!file.is_open()) {
cout << "Filed to Open File!" << endl;
return 0;
}
while (getline(file, s))
{
istringstream ls(s);
airPort.push_back(s);
}
vector<string> airPort = split(",", s); //trying to pass the lines in
the airPort vector to be
split up
最后,我试图将其更新到仅使用第 4 个逗号之后的值更新 airPort 向量的位置,因此程序的其余部分可能会使用该更新后的向量。
解决方案
推荐阅读
- java - 检测哪个字符与特定编码不同的最快方法
- telegraf - Telegraf 可以在网络中断期间将指标数据存储在本地系统上,然后再转发吗?
- aspnetboilerplate - 请求失败时如何禁用警报消息?
- omnet++ - 如何在 t > 0 时开始静脉模拟
- c# - 带有标题和内容的 UserControl - 允许在内容面板中放置控件并防止在设计时在标题中放置控件
- r - R中快速机器上的运行时间非常慢
- r - Shinyjs:[添加|删除]类在模块中不起作用
- python - 在 Python 中将产量数分成小于阈值的部分
- java - android java AudioTrack 缓冲区大小没有意义
- r - 如何在 Knime 中导入 R 代码