如何将矢量大小扩展一个元素并用变量填充它
How to extend vector size by one element and fill it with variable
我想只增加一个名为l_nMinplacesPos
的vector
的大小一个元素,并按名为m_nCurrentTime
的变量中的值填充新元素(准备通过MPI函数共享它,MPI_Bcast
,到其他节点)。
我想到了push_back()
和resize()
,但我想知道这些是否是唯一的方法,或者是否有更好的方法?
我知道这是错误的语法,但我想说明一下这个想法:
void ParaStochSimulator::broad_casting(long j){
std::cout << "i'm broad_casting" << std::endl;
l_nMinplacesPos = (*m_pcTransitionsInfo)[j]->GetManipulatedPlaces();
double m_nCurrentTime;
l_anMarking.reserve(l_nMinplacesPos.size());
//the vector that i want to extend:
l_nMinplacesPos.resize( 1,m_nCurrentTime); //HERE
MPI_Bcast(&l_anMarking, l_nMinplacesPos.size(), MPI_DOUBLE, 0, MPI_COMM_WORLD);
}
有什么帮助吗?
使用vector.push_back(value);
.
在您的情况下,这将是:
l_nMinplacesPos.push_back(m_nCurrentTime);
如果要使用矢量模板类的 resize 成员函数,另一种解决方案是执行以下操作:
l_nMinplacesPos.resize(l_nMinplacesPos.size()+1, m_nCurrentTime);
在这里,您指示仅将向量的大小增加 1 个元素,如您在问题中提出的,即当前大小 + 1 :l_nMinplacesPos.size()+1
同时,您告诉 resize 成员函数用值填充该元素:m_nCurrentTime
相关文章:
- lower_bound()返回最后一个元素
- 使用std::transform将一个范围的元素添加到另一个范围中
- 我想访问std::unique_ptr中的一个特定元素
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 删除映射和分割错误中的一个过去结束元素
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 仅显示链表的最后一个元素
- 为什么在 std::map 上移动无法将元素从一个映射移动到另一个映射
- 查找最小的下一个更大的元素
- push_back通过自行创建的对象获取最后一个元素的向量
- 使用 map.end() 访问 map 的最后一个元素
- 如何知道地图中的最后一个元素是否被删除?
- 选择一个元素而不是一个对象的数组的原因
- std::矢量保存 只推送最后一个元素
- 为什么这个选择排序算法仍然切换一个元素,当它已经是其他元素中最小的元素时?
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素