- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,所以我要做的是将类的实例添加到 vector 的特定索引。该索引可以是最初不存在的,也可以是已清除的现有索引,并且正在将新类实例写入该位置。
下面是我一直用来尝试将这些实例写入 vector 的函数,在底部的注释中你可以看到我尝试使用的其他 2 种方法,显然 push_back 只能添加新 vector 在最后。
我有一种感觉,assign 可能只能向现有元素添加数据?并且该插入可能会添加一个新元素并将现有元素向下移动而不是覆盖。只是想清楚一点,因为 C++ 教程已经开始让我感到困惑。
此外,引用/取消引用/调用 Person vector (在本例中称为“allthePeople”)的正确方法是什么,以便可以更改其数据?
void createnewPerson(int assignID, RECT startingpoint, vector<Person>* allthePeople, int framenumber) {
Person newguy(assignID, startingpoint, framenumber);
std::cout << "New Person ID number: " << newguy.getIDnumber() << std::endl;
std::cout << "New Person Recent Frame: " << newguy.getlastframeseen() << std::endl;
std::cout << "New Person Recent history bottom: " << newguy.getrecenthistory().bottom << std::endl;
int place = assignID - 1;
//This is where I am confused about referencing/dereferencing
allthePeople->assign(allthePeople->begin() + place, newguy);
//allthePeople->insert(place, newguy);
//allthePeople->push_back(newguy);
}
还要澄清一下,“place”总是比“assignID”小 1,因为 vector 位置从 0 开始,我只是想从 1 而不是 0 开始它们的 ID 号。
------------编辑:添加了 IF 循环解决了问题----------------
void createnewPerson(int assignID, RECT startingpoint, vector<Person>* allthePeople, int framenumber) {
Person newguy(assignID, startingpoint, framenumber);
std::cout << "New Person ID number: " << newguy.getIDnumber() << std::endl;
std::cout << "New Person Recent Frame: " << newguy.getlastframeseen() << std::endl;
std::cout << "New Person Recent history bottom: " << newguy.getrecenthistory().bottom << std::endl;
int place = assignID - 1;
if (allthePeople->size() > place)
{
//assuming places starts from 1 to vector's size.
(*allthePeople)[place] = newguy;
}
else
{
allthePeople->push_back(newguy);
}
}
最佳答案
assign
用于替换 vector 的全部内容。
假设你想把每个人放在一个特定的地方。然后,您可能会更好地使用 operator[] 将值放在您想要的位置,而不是使用 assign。您需要具有适当大小的 vector 。
if (allthePeople->size() >= place )
{
//assuming places starts from 1 to vector's size.
(*allthePeople)[place - 1] = newguy;
}
关于c++ - 挣扎着将新内容分配给 vector 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39868423/
我正在尝试创建一个函数来从一个文件中读取摩尔斯电码,将其转换为英文文本,将转换后的文本打印到终端,并将其写入输出文件。这是一个粗略的开始...... #define TOTAL_MORSE 91 #d
好吧,我不知道我做错了什么,我正在尝试在勾选复选框时修改 css。 这是 HTML 代码: PHP: if( isset($_POST['com']) && isset($_POST['check
我是一个 C 语言新手,正在努力解决作业中的 C 语言问题。我需要创建一个简单的程序,将结构类型写入文件,然后读取文件以恢复先前插入的数据。我让这两个部分工作。 还有另一个功能是必需的,它基本上要求用
我有以下代码: window.open("https://www.google.com", menubar=0, true); window.open("https://www.google.com
解决方案:对于以后看到这个的人来说,我使用的解决方案确实是viewDidLayoutSubviews。解决方案实际上相当复杂——每次页面需要重新布局时,我都必须计算几个缩放值并动态调整 Art Vie
我有一个看起来像这样的模型: public class SampleModel { public static SampleModel Create() { retur
我目前正在尝试通过 USB 发送 float 。PC 有一个运行以下代码的 Qt 应用程序 float x = 2.0; memcpy(buffer.data() + 14, &x, sizeof
我正在将一个巨大的 csv (18GB) 加载到内存中,并注意到 R 和 Python 之间存在很大差异。这是在 AWS ec2 r4.8xlarge which has 244 Gb of memo
我是一名优秀的程序员,十分优秀!