给定以下类:
#include <vector>
#include <iostream>
using std::vector;
using std::ostream;
template<class T>
class Gen {
vector<T> array;
public:
explicit Gen(int size);
template<class S>
friend ostream& operator<<(ostream& os, const Gen<S>& g);
};
template<class T>
Gen<T>::Gen(int size) {
for (int i = 0; i < size; i++) {
this->array.push_back(T());
}
}
template<class T>
ostream& operator<<(ostream& os, const Gen<T>& g) {
for (typename vector<T>::iterator it = g.array.begin(); it != g.array.end();
it++) { // ****** error ********
os << *it << " ";
}
return os;
}
int main() {
Gen<int> g(3);
std::cout << g << std::endl;
}
我该怎么解决呢?
您正在将常量gen
传递给运算符<<
。这意味着当您调用g.array.begin()
时,您调用的是begin的const重载,它返回一个const_iterator:
const_iterator begin() const noexcept;
然后尝试将其分配给向量
,这会导致编译器错误。您可以这样修复:
auto it = g.array.begin()
它告诉编译器推断it
的正确类型。
我怎么能修好它? replaceAll函数中此字符“{”错误。谢谢。
我如何修复这个程序我使用Java Spring MVC?我想在数据库中输入包含日期的数据,但它显示错误。我该怎么修好它? 这是我在实体中的代码 字段“Tanggal”上对象“transaksipenjualan”中的字段错误:拒绝值[2019-07-15];代码[typemismatch.transaksipenjualan.tanggal,typemismatch.tanggal,typemis
我需要将12小时的时间转换为24小时的格式。 我现在已经把12小时的时间硬编码了,以使事情更简单。 我的逻辑:输入sting 07:05:45PM提取最后2个字符。如果AM check为前两个字符,则为12。。如果是,则将其设置为00,否则按原样输出,如果PM检查前两位数字是否为12。。如果是,请保持原样,如果不是,则在前2位加上12 总线错误:10是我运行代码得到的
错误(25,1):PLS-00103:遇到符号“EXEC” 放下桌上的学生;提交;
代码:import functools import json import os import tensorflow as tf import sys。路径附加(“C:\Users\Gilbertchristian\Documents\Anaconda\Object\u detection\u api\models\research”)系统。路径附加(“C:\Users\Gilbertchris
我得到这个错误的一个小箭头指向十进制整数。允许小数吗?我要写些什么才能让小数被接受?这是我的代码: