如何将矢量大小扩展一个元素并用变量填充它

How to extend vector size by one element and fill it with variable

本文关键字:元素 一个 填充 变量 扩展      更新时间:2023-10-16

我想只增加一个名为l_nMinplacesPosvector的大小一个元素,并按名为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