在c++上打印矢量数组



我正在尝试用c++打印一个向量数组。当我在参数列表中省略"const"one_answers"for each"循环时,程序就可以工作了。当我插入const类型限定符时,它会给我一个错误。

这是我的主要函数,函数调用打印列表:

int main() {
std::cout << "Hello Worldn";
std::vector<Employee> employeeList {};
// Entering employee data 
buildList(employeeList);

//print the list of employees.
printList(employeeList);
//pause code
int pause;
std::cin >> pause;
return 0;
}

以下是打印列表定义:

void printList(std::vector<Employee> &list) {
//use a for each loop to print each employee
int index = 0;
for (auto &element : list) {
std::cout << "n";
std::cout << "Employee: " <<(index+1)<<     std::endl;
element.printEmployee();
index++;
}
}

同样,当我在参数列表和for each循环中放置const时,它会给我一个错误。为什么?

以下是错误的图像:

给出错误的代码的截屏

Employee::printEmployee的声明不正确。它必须是void Employee::printEmployee() const才能在const上下文中使用。

为了将来参考,您对每个循环的调用被称为"基于范围的循环"或"基于范围"。为每个循环调用它可能会与实际算法std::for_each混淆,应该避免。

最新更新