C++打印字符串向量数组的内容
C++ print contents of array of string vectors?
我不懂C++,但需要对我继承的一些代码进行一些调整。代码的一部分有:
array<vector<string>, 2> names;
我现在正在尝试打印这个数组中每个向量的内容。我该怎么做?
我知道我可以迭代一个像这样的向量:
for (unsigned int p=0; p<vector.size(); p++)
cout << vector.at(p) << endl;
不过,我不知道如何调整它来打印数组中每个向量的内容。
感谢您提供的任何帮助。我在这里不自在。
在C++11中,您可以非常容易地迭代它。
for(auto& i : names) {
for(auto& k : i) {
std::cout << k << std::endl;
}
}
使用迭代器:
array<vector<string>,2> names;
for (array<vector<string>,2>::iterator i=names.begin();i!=names.end();i++)
{
for (vector<string>::iterator j=i->begin();j!=i->end();j++)
{
cout << *j << endl;
}
}
就像遍历向量一样,您需要遍历数组:
for (int i=0; i<2; i++)
{
for (unsigned int p=0; p<names[i].size(); p++)
{
cout << names[i].at(p) << endl;
}
}
或
for (auto it = std::begin(names); it != std::end(names); ++it)
{
for (unsigned int p=0; p<(*it).size(); p++)
{
cout << (*it).at(p) << endl;
}
}
一行解决方案(在这种情况下不一定更可取,因为像Raptz的答案中那样手动迭代for
更容易阅读,但仍然很好知道):
std::for_each(names.begin(), names.end(), [](vector<string>& v){
std::copy(v.begin(),v.end(),
std::ostream_iterator<string>(std::cout,"n")});
相关文章:
- 将数组/向量发送到 c++ 脚本的 cython 示例
- C++:在多个线程中访问同一数组/向量的不同单元格是否会产生数据竞赛?
- 将指向多维数组向量中的单个项的指针传递给函数 c++
- 数组向量的文件 I/O
- 在一行中初始化和引入数组向量的正确方法?
- C++ 返回具有最小硬币的数组/向量以获得价值动态规划
- 将整数向量转换为字节数组向量,然后调用每个字节数组
- 我可以在不循环访问数组/向量的情况下检查数组/向量中的单词吗?
- (C )创建可以从功能访问的动态全局数组/向量
- 提升是否具有用于数组向量的智能指针
- 将函数应用于数组向量的元素
- 数组向量的内存布局是什么
- 获取数组/向量末尾地址的未定义行为
- "Empty"数组\向量成员 C++
- 将字符串向量转换为双2-D数组向量
- 排序多维数组/向量
- 如何创建模板化对象的数组/向量
- 如何在数组向量上使用 std::find
- 无法删除C++中的数组/向量
- 具有元素自定义构造函数的对象数组/向量