我在http://www.cplusplus.com/reference/vector/vector/data/中找到了一个std :: vector的例子.
// vector::data
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> myvector (5);
int* p = myvector.data();
*p = 10;
++p;
*p = 20;
p[2] = 100;
std::cout << "myvector contains:";
for (unsigned i=0; i<myvector.size(); ++i)
std::cout << ' ' << myvector[i];
std::cout << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是
myvector contains: 10 20 0 100 0
Run Code Online (Sandbox Code Playgroud)
我的问题可能很愚蠢,但我真的不明白这里发生了什么.我们直接指向了向量的内存.然后我们为第一个元素(索引0)赋值10,移动到第二个元素并为其赋值20(索引1).最后,我们为第三个元素(索引2)赋值100.答案应该如下吗?
10 20 100 0 0
Run Code Online (Sandbox Code Playgroud) 问题是我试图将一个对象添加到列表中,但碰巧该对象根本没有添加到列表中。我的代码如下所示:
List<string> names = GetNames();
string defaultName = "default";
if (!names.Contains(defaultName))
names.Prepend(defaultName);
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我调试代码时,执行了 Prepend() 指令,但什么也没发生。因此,我必须使用 List.Insert() 来完成任务,但我不明白这里发生了什么?
我的名字列表只是一个包含 4 个名字的简单列表,没什么特别的,如果有帮助的话,我使用的是 Visual Studio 2017 和 .Net Framework 4.7。
我刚刚在visual studio 2017中学习并创建了一个共享项目。我注意到共享项目没有“参考”来引用其他资源(其他项目,类库,......)。我什至查看了 .shproj 文件,发现它只导入了我在共享项目中创建的类。
我的问题是,如果我想创建一个加载项应用程序,我需要使用类库来调用原始软件公开的必要 API。如何将其他项目/类库(或一般资源)引用/添加到我的共享项目?或者这甚至可能吗?
我的部分问题也在这里描述,参考来自其他共享项目的共享项目
但我需要一个更通用的解决方案。谢谢大家的帮助。