本文介绍了要替换二维向量中的元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我需要帮助来捕捉二维矢量的特定第二元素并用一个新字符串替换它。



HiI need help to catch a specific second elemnt of a 2d vector and replace it with a new string.

vector<pair<int,string>> 2dvector;



我尝试过迭代器,但是迭代器是矢量的副本,而不是矢量本身。



我的尝试:




I have tried by iterator but iterator is a copy of vector and not the vector itself.

What I have tried:

for (vector<pair<int,string>>::iterator it = 2dvector.begin() ; it != 2dvector.end(); ++it)
{
 if (it->second.find("OldString") != std::string::npos)
 {
	it->second.insert("NEWSTRING");
 }

}

推荐答案

for ( vector< pair< int, string > >::iterator it = v.begin(); it != v.end(); ++it)
{
  if ( it->second == "OldString")
    it->second = "NEWSTRING";
}



或者, C ++ 11


or, with C++11

for ( auto & x : v)
{
  if ( x.second == "OldString")
    x.second = "NEWSTRING";
}


vector<pair<int, string>> myVector(10);
myVector[0] = { 1, "test1" };
myVector[1] = { 2, "test2" };
myVector[2] = { 3, "test3" };

int nSize = myVector.size();

for (int i = 0; i < nSize; i++)
{
	if (myVector[i].second == "test2")
		myVector[i].second = "test22";
}


这篇关于要替换二维向量中的元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 04:22
查看更多