Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 创建向量方法_C++ - Fatal编程技术网

C++ 创建向量方法

C++ 创建向量方法,c++,C++,“list listObject;”行表示不允许使用字符,并且listObject处于未识别状态。有人能告诉我我做错了什么吗? 多谢各位 char list; vector<char> v(20); list<char> listObject; int i; for (i = 0; i < 20; i++) v[i] = 'A' + i; cout << "Original contents of vector:\n"; for (i = 0

“list listObject;”行表示不允许使用字符,并且listObject处于未识别状态。有人能告诉我我做错了什么吗? 多谢各位

char list;
vector<char> v(20);
list<char> listObject;
int i;

for (i = 0; i < 20; i++)
    v[i] = 'A' + i;

cout << "Original contents of vector:\n";
for (i = 0; i < v.size(); i++)
    cout << v[i] << " ";
cout << "\n\n";

char str[] = "-TEST MESSAGE-";
for (i = 0; str[i]; i++)
    listObject.push_back(str[i]);

copy(listObject.begin(), listObject.end(), v.begin());

// display result
cout << "Contents of vector after copy:\n";
for (i = 0; i < v.size(); i++)
    cout << v[i] << " ";
char列表;
向量v(20);
列表对象;
int i;
对于(i=0;i<20;i++)
v[i]=“A”+i;

cout第一点,正如owacodes所述,您试图定义一个名为list的局部变量,它与容器列表的名称冲突

第二点:我制作了一个可编译的示例,其中包含一些您可能会从中受益的更改

#include <iostream>
#include <string>
#include <algorithm>
#include <list>

int main()
{
    std::vector<char> v(20); 
    // use iota for the assignment, it does what you want
    std::iota(v.begin(), v.end(), 'A');

    std::cout << "Original contents of vector:\n";
    for(auto n: v) std::cout << n << ' ';
    std::cout << std::endl;

    // use a std::string instaed of char[], it is easier to use and less error prone
    std::string str("-TEST MESSAGE-");
    std::list<char> listObject;
    listObject.insert(listObject.begin(),str.begin(),str.end());

    std::copy(listObject.begin(), listObject.end(), v.begin());
    // be careful, v is not resized (str will be truncated with a longer message)

    std::cout << "new contents of vector:\n";
    for(auto n: v) std::cout << n << ' ';
    std::cout << std::endl;
}

您使用name
list
定义一个
char
,然后尝试定义类型为
list
的对象(除非您使用名称空间std取出
您显然在某处),您正在创建的向量方法在哪里?
Original contents of vector:
A B C D E F G H I J K L M N O P Q R S T 
new contents of vector:
- T E S T   M E S S A G E - O P Q R S T