由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问一个C++的问题
相关主题
大虾别骂我,请推荐c++书nvda开源inference accelerator
请推荐一本适用于初学者的C++编程书[求教]TPS有问题会降低MPG吗?我的情况需要换TPS吗?
C++新手问教科书C++primer好还是C++primer plus好路考fail了,求安慰求分析 T_T
intel released c++ compiler 2013有没有哪个法学院可以两年拿到JD的?
有没有快速把C++过一遍的书同学在accelerated program里fail了一个课
help -- matlab accelerationLPN的学校有没有可以办F1的?
[系统工具] Ashampoo系统实用工具套装2012《大学物理》(College Physics)第9版[PDF]
Andriod 虚拟机速度十分卡什么原因? (转载)攒人品。面试经历(1)
相关话题的讨论汇总
话题: student话题: students话题: vector话题: pass话题: info
进入Programming版参与讨论
1 (共1页)
e**t
发帖数: 83
1
今天看到Accelerated C++里的一小段程序,有困惑
// separate passing and failing student records: first try
vector extract_fails(vector& students)
{
vector pass, fail;
for (vector::size_type i = 0;
i != students.size(); ++i)
if (fgrade(students[i]))
fail.push_back(students[i]);
else
pass.push_back(students[i]);
students = pass; // 我的疑问在这里
return fail;
}
vector pass是创建在stack里,应该在function结束就被destroy
S*****n
发帖数: 227
2

assignment operator语义上做的是赋值,pass destroyed了,students正好
有了新内容啊。。

【在 e**t 的大作中提到】
: 今天看到Accelerated C++里的一小段程序,有困惑
: // separate passing and failing student records: first try
: vector extract_fails(vector& students)
: {
: vector pass, fail;
: for (vector::size_type i = 0;
: i != students.size(); ++i)
: if (fgrade(students[i]))
: fail.push_back(students[i]);
: else

D*******a
发帖数: 3688
3
students是reference而不是指针
students.operator=(pass)已经把内容复制到students了

【在 e**t 的大作中提到】
: 今天看到Accelerated C++里的一小段程序,有困惑
: // separate passing and failing student records: first try
: vector extract_fails(vector& students)
: {
: vector pass, fail;
: for (vector::size_type i = 0;
: i != students.size(); ++i)
: if (fgrade(students[i]))
: fail.push_back(students[i]);
: else

k****z
发帖数: 550
4
before the function returns, the line "students = pass;" copies everything
in pass vector to the students vector, which is a reference so that the
original argument gets overwritten.

【在 e**t 的大作中提到】
: 今天看到Accelerated C++里的一小段程序,有困惑
: // separate passing and failing student records: first try
: vector extract_fails(vector& students)
: {
: vector pass, fail;
: for (vector::size_type i = 0;
: i != students.size(); ++i)
: if (fgrade(students[i]))
: fail.push_back(students[i]);
: else

d*******n
发帖数: 1339
5
students = pass; // this is a copy in vector, not a reference

【在 e**t 的大作中提到】
: 今天看到Accelerated C++里的一小段程序,有困惑
: // separate passing and failing student records: first try
: vector extract_fails(vector& students)
: {
: vector pass, fail;
: for (vector::size_type i = 0;
: i != students.size(); ++i)
: if (fgrade(students[i]))
: fail.push_back(students[i]);
: else

i*c
发帖数: 1132
6
pass在最后一个 "}" 前还没有被destroied, copy to student是有效的.

【在 e**t 的大作中提到】
: 今天看到Accelerated C++里的一小段程序,有困惑
: // separate passing and failing student records: first try
: vector extract_fails(vector& students)
: {
: vector pass, fail;
: for (vector::size_type i = 0;
: i != students.size(); ++i)
: if (fgrade(students[i]))
: fail.push_back(students[i]);
: else

1 (共1页)
进入Programming版参与讨论
相关主题
攒人品。面试经历(1)有没有快速把C++过一遍的书
学习c++的书籍推荐(转)help -- matlab acceleration
有没有什么c++比较容易入门的书籍?[系统工具] Ashampoo系统实用工具套装2012
postdoc position in medical imagingAndriod 虚拟机速度十分卡什么原因? (转载)
大虾别骂我,请推荐c++书nvda开源inference accelerator
请推荐一本适用于初学者的C++编程书[求教]TPS有问题会降低MPG吗?我的情况需要换TPS吗?
C++新手问教科书C++primer好还是C++primer plus好路考fail了,求安慰求分析 T_T
intel released c++ compiler 2013有没有哪个法学院可以两年拿到JD的?
相关话题的讨论汇总
话题: student话题: students话题: vector话题: pass话题: info