首页 文章

std :: vector 's doesn' t的数组[重复]

提问于
浏览
0

这个问题在这里已有答案:

我想管理三个std :: vectors并考虑这样的解决方案:

#include <stdlib.h>
#include <vector>

int main() {
  std::vector<int> nums[3];
  nums[0].push_back(1);
  nums[0].push_back(3);
  nums[0].push_back(5);
  nums[1].push_back(10);
  nums[1].push_back(20);
  nums[1].push_back(30);
  nums[2].push_back(100);
  nums[2].push_back(300);
  nums[2].push_back(500);
  nums[2].push_back(700);
  int i;
  for (i = 0; i < nums[0].size(); i++) {
    printf("%d\n", nums[0].at(i));
  }
  for (i = 0; i < nums[1].size(); i++) {
    printf("%d\n", nums[2].at(i));
  }
  for (i = 0; i < nums[2].size(); i++) {
    printf("%d\n", nums[2].at(i));
  }
}

为什么这不起作用?我不懂编译器输出 . 知道如何解决这个问题吗?

gcc:

体系结构x86_64的未定义符号:“std :: __ 1 :: __ vector_base_common :: __ throw_length_error()const”,引自:void std :: __ 1 :: vector> :: __ push_back_slow_path(int const&)in code-4a0a01.o“std :: __ 1 :: __ vector_base_common :: __ throw_out_of_range()const“,在代码-4a0a01.o”std :: terminate()“中引用自:std :: __ 1 :: vector> :: at(unsigned long),引自: ___clang_call_terminate in code-4a0a01.o“operator delete(void *)”,引自:std :: __ 1 :: __ vector_base> :: ~__vector_base(),代码为-4a0a01.o std :: __ 1 :: __ split_buffer&> ::〜代码-4a0a01.o中的__split_buffer()“operator new(unsigned long)”,引用自:std :: __ 1 :: __ split_buffer&> :: __ split_buffer(unsigned long,unsigned long,std :: __ 1 :: allocator&)代码 - 4a0a01.o“___cxa_begin_catch”,引用自:___clang_call_terminate in code-4a0a01.o“___gxx_personality_v0”,引用自:代码-a0的中的_main-4a0a01.o void std :: __ 1 :: vector> :: __ push_back_slow_path(int const&)in code- 4a0a01.o矮人异常展开信息(__eh_fr代码-4a0a01.o ld:找不到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

1 回答

  • 1

    您正在使用 gcc 这是C编译器 . C编程语言不支持STL(标准模板库) . 使用 g++ ,这是C编译器 .

相关问题