如何打印矢量的数据
How to print vector's data
我在互联网上搜索了很多,可以找到简单的例子来打印vector的数据。
我试图像阵列一样打印它,尽管它不起作用......
这是我尝试过的:
using namespace std ;
.....
const int MAX = 255 ;
vector <string> testersName[MAX];
cout << testersName[i] << endl;
错误仅在cout行中,第一行正在遵守,一切顺利。
我在测试人员名称中获得了数据,尽管我收到此错误:
"错误 1 错误 C2679:二进制'<<':找不到采用类型为'std::vector<_Ty>'的右操作数的运算符(或没有可接受的转换)"
vector <string> testersName[MAX];
声明一个向量数组,请尝试简单地vector <string> testersName(MAX);
- 这声明了一个包含MAX
元素的向量。
你必须遍历向量的元素,然后对每个元素进行更新:
vector <string> testersName;
// Fill your vector
for (int i = 0; i < testersName.size(); ++i) {
cout << testersName[i] << endl;
}
此外,我不认为这条线vector <string> testersName[MAX];
做你认为它做的事情。没有必要为矢量指定大小,因为它会在您填充时动态增长。如果您仍然想给出大小,请使用括号:(MAX)
我发现打印矢量的最佳方法是使用某种包装器:
让我们从:
template< typename T >
class ConstVecFormat
{
private:
std::vector<T> const& vec_;
const std::string prefix_, delim_, suffix_;
public:
explicit ConstVecFormat( std::vector<T> const& vec, prefix="", delim=",", suffix="" ) :
vec_(vec), prefix_(prefix), delim_(delim), suffix_(suffix_)
{
}
std::ostream& print( std::ostream& os ) const
{
typename std::vector<T>::const_iterator iter = vec_.begin(), end=vec_.end();
os << prefix_;
if( iter != end )
os << *iter;
else
while( ++iter != end )
{
os << delim_ << *iter;
}
os << suffix_;
return os;
}
};
template< typename T >
std::ostream & operator<<( std::ostream & os, ConstVecFormat<T> const& format )
{
return format.print( os );
}
这正朝着成为上一个主题的副本,我们在之前的主题中对此模板进行了大量增强,以生成一个用于打印集合的通用模板。
相关文章:
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 动态分配的聊天数组打印缺失的数据和空
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- C++ 打印包含数据结构的数组
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 打印从SQLite3数据库检索的数据C++与命令行中相同的方式
- 重写函数不打印基类数据
- TCP 服务器的异步读取使用 boost::asio 打印客户端套接字发送的数据
- C++ 尝试优化每一帧将数据打印到二进制文件
- 使用链表数据结构打印多项式
- 如何打印在二叉搜索树中找到的数据?
- C++ Expat 仅打印元素的第一个字母和标签中的数据
- 如何在c ++中以一行(水平)打印两个文件的数据?如给定的.这两种形式来自两个不同的文本文件
- 在打印方法中,难以在二进制树中打印数据
- 是否有一个标准函数可以打印/监视stdin文件的内容,同时将数据留在stdin中
- 使用ifstream时,被调用文件中的数据不会打印
- 面临在 if 语句之外打印变量数据的问题 完成使用 Qt 编程
- C++模板方法选择正确的数据打印方式
- 无法将二维数组中的数据打印到C++的输出文件
- 在C++中读取数据列、移位、将数据打印到.txt文件