相关疑难解决方法(0)

std :: vector元素是否保证是连续的?

我的问题很简单:std :: vector元素是否保证是连续的?在order word中,我可以使用指向std :: vector的第一个元素的指针作为C数组吗?

如果我的记忆力很好,那么C++标准就没有这样的保证.但是,如果元素不连续,那么std :: vector要求几乎不可能满足它们.

有人可以澄清一下吗?

例:

std::vector<int> values;
// ... fill up values

if( !values.empty() )
{
    int *array = &values[0];
    for( int i = 0; i < values.size(); ++i )
    {
        int v = array[i];
        // do something with 'v'
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ standards vector

104
推荐指数
4
解决办法
4万
查看次数

使用基于范围的for循环时需要迭代器

目前,我只能使用以下方法进行基于范围的循环:

for (auto& value : values)
Run Code Online (Sandbox Code Playgroud)

但有时我需要一个值的迭代器,而不是一个引用(无论出于何种原因).是否有任何方法无需通过整个矢量比较值?

c++ iterator for-loop c++11

81
推荐指数
3
解决办法
4万
查看次数

在C++ 11基于范围的for循环中查找元素的位置?

假设我有以下代码:

vector<int> list;
for(auto& elem:list) {
    int i = elem;
}
Run Code Online (Sandbox Code Playgroud)

我可以在elem不保持单独迭代器的情况下找到向量中的位置吗?

c++ iterator c++11

71
推荐指数
8
解决办法
4万
查看次数

标签 统计

c++ ×3

c++11 ×2

iterator ×2

for-loop ×1

standards ×1

vector ×1