小编Thế*_*ong的帖子

C++ std :: vector :: data为什么返回的指针索引与矢量索引不匹配?

我在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)

c++ vector c++11

8
推荐指数
1
解决办法
799
查看次数

为什么 Linq Prepend() 不适用于 List&lt;T&gt;?

问题是我试图将一个对象添加到列表中,但碰巧该对象根本没有添加到列表中。我的代码如下所示:

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。

.net c# linq

5
推荐指数
1
解决办法
1643
查看次数

C# 在共享项目中使用引用/类库

我刚刚在visual studio 2017中学习并创建了一个共享项目。我注意到共享项目没有“参考”来引用其他资源(其他项目,类库,......)。我什至查看了 .shproj 文件,发现它只导入了我在共享项目中创建的类。

我的问题是,如果我想创建一个加载项应用程序,我需要使用类库来调用原始软件公开的必要 API。如何将其他项目/类库(或一般资源)引用/添加到我的共享项目?或者这甚至可能吗?

我的部分问题也在这里描述,参考来自其他共享项目的共享项目

但我需要一个更通用的解决方案。谢谢大家的帮助。

.net c# visual-studio shared-project

3
推荐指数
1
解决办法
2280
查看次数

标签 统计

.net ×2

c# ×2

c++ ×1

c++11 ×1

linq ×1

shared-project ×1

vector ×1

visual-studio ×1